https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119386

--- Comment #47 from Alexander Monakov <amonakov at gcc dot gnu.org> ---
(In reply to Ard Biesheuvel from comment #43)
> Non-PIC might be more efficient, but there are cases where we cannot use it.
> The early startup code on x86 runs from a different virtual mapping than it
> was linked at, and this has been causing lots of issues. Grep for
> RIP_REL_REF() in the Linux source tree and weep :-)

So unless I botched my grep, there's only a handful of files that employ
RIP_REL_REF, all for position-independent addressing at early startup as you
explain. Considering the macro is effectively used for writing PIE code by
hand, why not compile those files with -fpie in the first place?

(not -fpic, which would emit GOT-indirect references to global variables with
default, not hidden, visibility)

Reply via email to