This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH][RFC] aarch64: fix start code for static pie
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Szabolcs Nagy <szabolcs dot nagy at arm dot com>
- Cc: GNU C Library <libc-alpha at sourceware dot org>, nd <nd at arm dot com>
- Date: Mon, 18 Dec 2017 03:21:15 -0800
- Subject: Re: [PATCH][RFC] aarch64: fix start code for static pie
- Authentication-results: sourceware.org; auth=none
- References: <5A1812F4.1050904@arm.com> <5A3796C8.5040008@arm.com>
On Mon, Dec 18, 2017 at 2:22 AM, Szabolcs Nagy <szabolcs.nagy@arm.com> wrote:
> On 24/11/17 12:39, Szabolcs Nagy wrote:
>> 2017-11-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
>>
>> * sysdeps/aarch64/start.S (_start): Handle PIC && !SHARED case.
>>
>
> committed with updated commit message:
>
> There are three flavors of the crt startup code:
>
> 1) crt1.o used for non-pie,
> 2) Scrt1.o used for dynamic linked pie (dynamic linker relocates),
> 3) rcrt1.o used for static linked pie (self relocation is needed)
>
> In the --enable-static-pie case crt1.o is built with -DPIC and in case
> of static linking it interposes _dl_relocate_static_pie in libc to
> avoid self relocation.
>
> Scrt1.o is built with -DPIC -DSHARED and it relies on GOT entries that
> the static linker cannot relax and thus need relocation before the
> start code is executed, so rcrt1.o needs separate implementation.
>
> This implementation does not work for .text > 4G position independent
> executables, which is fine since the toolchain does not support
> -mcmodel=large with -fPIE.
>
> Tests pass with ld/22269 and ld/22263 binutils bugs fixed.
>
> * sysdeps/aarch64/start.S (_start): Handle PIC && !SHARED case.
>
Can you update NEWS to add aarch64 to static PIE?
Thanks.
--
H.J.