glibc/sysdeps
Szabolcs Nagy 14d886edbd aarch64: fix start code for static pie
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.
2017-12-18 10:07:07 +00:00
..
aarch64 aarch64: fix start code for static pie 2017-12-18 10:07:07 +00:00
alpha Update Alpha libm-test-ulps 2017-12-06 18:55:09 -02:00
arm Add sysdeps/ieee754/soft-fp. 2017-12-12 23:35:21 +00:00
generic Add --enable-static-pie configure option to build static PIE [BZ #19574] 2017-12-15 17:12:14 -08:00
gnu The -Wstringop-truncation option new in GCC 8 detects common misuses 2017-11-15 17:39:59 -07:00
hppa Handle __gmon_start__ as undefined weak on hppa. 2017-12-02 14:43:28 -05:00
i386 Add --enable-static-pie configure option to build static PIE [BZ #19574] 2017-12-15 17:12:14 -08:00
ia64 Update IA64 libm-test-ulps 2017-12-12 16:57:41 -02:00
ieee754 New generic sincosf 2017-12-16 14:01:37 +05:30
init_array Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
m68k Add sysdeps/ieee754/soft-fp. 2017-12-12 23:35:21 +00:00
mach Don't set errno in Hurd rtld's __access_noerrno 2017-12-15 18:02:56 +01:00
microblaze Add sysdeps/ieee754/soft-fp. 2017-12-12 23:35:21 +00:00
mips Add --enable-static-pie configure option to build static PIE [BZ #19574] 2017-12-15 17:12:14 -08:00
nios2 Add sysdeps/ieee754/soft-fp. 2017-12-12 23:35:21 +00:00
nptl nptl: Define __PTHREAD_MUTEX_{NUSERS_AFTER_KIND,USE_UNION} 2017-11-07 09:48:41 -02:00
posix posix: Fix generic p{read,write}v buffer allocation (BZ#22457) 2017-11-24 12:16:15 -02:00
powerpc powerpc: Update ulps 2017-12-16 14:04:14 +05:30
pthread aio: Remove internal_function function attribute 2017-08-31 15:59:06 +02:00
s390 s390: Update ulps 2017-12-16 14:11:56 +05:30
sh Add sysdeps/ieee754/soft-fp. 2017-12-12 23:35:21 +00:00
sparc Update SPARC divrem generation to match output. 2017-12-15 14:06:07 +00:00
tile Add sysdeps/ieee754/soft-fp. 2017-12-12 23:35:21 +00:00
unix ia64: Add ipc_priv.h header to set __IPC_64 to zero 2017-12-12 12:19:24 -02:00
wordsize-32 Build divdi3 only for architecture that required it 2017-04-06 15:14:34 -03:00
wordsize-64 posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
x86 Add _Float64x function aliases. 2017-11-27 14:16:47 +00:00
x86_64 Add --enable-static-pie configure option to build static PIE [BZ #19574] 2017-12-15 17:12:14 -08:00