glibc/sysdeps/aarch64
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
..
bits Remove bits/string.h. 2017-06-20 08:21:24 -04:00
fpu Use libm_alias_float for aarch64. 2017-11-28 00:55:42 +00:00
multiarch aarch64: Avoid hidden symbols for memcpy/memmove into static binaries 2017-12-04 21:17:17 +05:30
nptl nptl: Define __PTHREAD_MUTEX_{NUSERS_AFTER_KIND,USE_UNION} 2017-11-07 09:48:41 -02:00
soft-fp Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Implies Relocate AArch64 from ports to libc. 2014-02-11 11:36:00 +00:00
Makefile Enable unwind info in libc-start.c and backtrace.c 2017-09-19 15:07:58 +01:00
Versions Relocate AArch64 from ports to libc. 2014-02-11 11:36:00 +00:00
__longjmp.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
abort-instr.h Relocate AArch64 from ports to libc. 2014-02-11 11:36:00 +00:00
atomic-machine.h Optimize generic spinlock code and use C11 like atomic macros. 2017-06-06 09:41:56 +02:00
backtrace.c Relocate AArch64 from ports to libc. 2014-02-11 11:36:00 +00:00
bsd-_setjmp.S Relocate AArch64 from ports to libc. 2014-02-11 11:36:00 +00:00
bsd-setjmp.S Relocate AArch64 from ports to libc. 2014-02-11 11:36:00 +00:00
configure Require autoconf 2.69 2014-09-29 07:53:36 -07:00
configure.ac Relocate AArch64 from ports to libc. 2014-02-11 11:36:00 +00:00
crti.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
crtn.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-irel.h Change argument type passed to ifunc resolvers 2017-08-31 10:34:55 -07:00
dl-link.sym Relocate AArch64 from ports to libc. 2014-02-11 11:36:00 +00:00
dl-machine.h aarch64: Remove barriers from TLS descriptor functions 2017-11-03 14:43:32 +00:00
dl-sysdep.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-tls.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-tlsdesc.S aarch64: optimize _dl_tlsdesc_dynamic fast path 2017-11-03 14:50:55 +00:00
dl-tlsdesc.h aarch64: Remove barriers from TLS descriptor functions 2017-11-03 14:43:32 +00:00
dl-trampoline.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-tunables.list tunables, aarch64: New tunable to override cpu 2017-06-30 22:58:39 +05:30
jmpbuf-offsets.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
jmpbuf-unwind.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ldsodefs.h Add ifunc support for aarch64. 2017-03-15 16:46:26 -07:00
libc-tls.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
libm-test-ulps AArch64: update libm-test-ulps 2017-09-28 15:28:46 +01:00
libm-test-ulps-name Do not hardcode platform names in manual/libm-err-tab.pl (bug 14139). 2016-11-04 16:49:06 +00:00
linkmap.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
machine-gmon.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
math-tests.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
mcount.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
memchr.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
memcmp.S [AArch64] Optimized memcmp. 2017-08-10 17:00:38 +01:00
memcpy.S aarch64: Thunderx specific memcpy and memmove 2017-05-24 16:46:48 -07:00
memmove.S This is an optimized memcpy/memmove for AArch64. Copies are split into 3 main 2016-06-20 17:41:33 +01:00
memset-reg.h aarch64: Optimized memset for falkor 2017-11-20 18:25:04 +05:30
memset.S aarch64: Optimized memset for falkor 2017-11-20 18:25:04 +05:30
memusage.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
preconfigure Remove relro configure test. 2014-06-27 16:51:22 +00:00
rawmemchr.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
setjmp.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sotruss-lib.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
stackinfo.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
start.S aarch64: fix start code for static pie 2017-12-18 10:07:07 +00:00
stpcpy.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
strchr.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
strchrnul.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
strcmp.S aarch64: Improve strcmp unaligned performance 2017-12-13 18:50:27 +05:30
strcpy.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
string_private.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
strlen.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
strncmp.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
strnlen.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
strrchr.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sysdep.h AArch64: use movz/movk instead of literal pools in start.S 2017-09-18 18:15:47 +01:00
tls-macros.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tlsdesc.c aarch64: Remove barriers from TLS descriptor functions 2017-11-03 14:43:32 +00:00
tlsdesc.sym aarch64: Use explicit offsets in _dl_tlsdesc_dynamic 2016-12-02 16:52:57 +01:00
tst-audit.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00