[PATCH][RFC] aarch64: fix start code for static pie
H.J. Lu
hjl.tools@gmail.com
Mon Dec 18 11:21:00 GMT 2017
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.
More information about the Libc-alpha
mailing list