This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: "GOT" under aarch64

On Fri, Sep 22, 2017 at 12:29 PM, Wilco Dijkstra <> wrote:
> Hi,
> You'll get GOT relocations to globals when you use -fpic:
> int x;
> int f(void) { return x; }
>>gcc -O2 -S -o- -fpic
> f:
>         adrp    x0, :got:x
>         ldr     x0, [x0, #:got_lo12:x]
>         ldr     w0, [x0]
>         ret
> So it doesn't depend on the compiler but what options you compile for.
> There may be an issue with your setup, -fpic shouldn't be on by default.

There's -fpic and there's -fpie. In this case it's more likely to be
pie which is about position independent executables. Distros and other
downstream packagers default to -fpie these days for security and
hardening reasons as it allows them to by default generate code that
is position independent and allows things like ASLR to actually take

To answer the question when are relocations through the GOT used, the
answer is whenever folks want to have position independence either in
their libraries or in their executables.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]