https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119386
--- Comment #31 from Alexander Monakov <amonakov at gcc dot gnu.org> --- I am certainly missing some interesting history here, because on one hand, I see that a.out uses call-pop combo in function prologue to find out current PC, and then uses %ebx-relative addressing in PIC code, but on the other hand, load addresses for a.out shared libraries were predetermined, so that seems redundant. (there wasn't lazy binding in a.out yet, was there?)