This is the mail archive of the
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.email@example.com> <5A3796C8.firstname.lastname@example.org>
On Mon, Dec 18, 2017 at 2:22 AM, Szabolcs Nagy <email@example.com> wrote:
> On 24/11/17 12:39, Szabolcs Nagy wrote:
>> 2017-11-24 Szabolcs Nagy <firstname.lastname@example.org>
>> * 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?