glibc/elf
Szabolcs Nagy 08325735c2 [BZ 18034][AArch64] Lazy TLSDESC relocation data race fix
Lazy TLSDESC initialization needs to be synchronized with concurrent TLS
accesses.  The TLS descriptor contains a function pointer (entry) and an
argument that is accessed from the entry function.  With lazy initialization
the first call to the entry function updates the entry and the argument to
their final value.  A final entry function must make sure that it accesses an
initialized argument, this needs synchronization on systems with weak memory
ordering otherwise the writes of the first call can be observed out of order.

There are at least two issues with the current code:

tlsdesc.c (i386, x86_64, arm, aarch64) uses volatile memory accesses on the
write side (in the initial entry function) instead of C11 atomics.

And on systems with weak memory ordering (arm, aarch64) the read side
synchronization is missing from the final entry functions (dl-tlsdesc.S).

This patch only deals with aarch64.

* Write side:

Volatile accesses were replaced with C11 relaxed atomics, and a release
store was used for the initialization of entry so the read side can
synchronize with it.

* Read side:

TLS access generated by the compiler and an entry function code is roughly

  ldr x1, [x0]    // load the entry
  blr x1          // call it

entryfunc:
  ldr x0, [x0,#8] // load the arg
  ret

Various alternatives were considered to force the ordering in the entry
function between the two loads:

(1) barrier

entryfunc:
  dmb ishld
  ldr x0, [x0,#8]

(2) address dependency (if the address of the second load depends on the
result of the first one the ordering is guaranteed):

entryfunc:
  ldr x1,[x0]
  and x1,x1,#8
  orr x1,x1,#8
  ldr x0,[x0,x1]

(3) load-acquire (ARMv8 instruction that is ordered before subsequent
loads and stores)

entryfunc:
  ldar xzr,[x0]
  ldr x0,[x0,#8]

Option (1) is the simplest but slowest (note: this runs at every TLS
access), options (2) and (3) do one extra load from [x0] (same address
loads are ordered so it happens-after the load on the call site),
option (2) clobbers x1 which is problematic because existing gcc does
not expect that, so approach (3) was chosen.

A new _dl_tlsdesc_return_lazy entry function was introduced for lazily
relocated static TLS, so non-lazy static TLS can avoid the synchronization
cost.

	[BZ #18034]
	* sysdeps/aarch64/dl-tlsdesc.h (_dl_tlsdesc_return_lazy): Declare.
	* sysdeps/aarch64/dl-tlsdesc.S (_dl_tlsdesc_return_lazy): Define.
	(_dl_tlsdesc_undefweak): Guarantee TLSDESC entry and argument load-load
	ordering using ldar.
	(_dl_tlsdesc_dynamic): Likewise.
	(_dl_tlsdesc_return_lazy): Likewise.
	* sysdeps/aarch64/tlsdesc.c (_dl_tlsdesc_resolve_rela_fixup): Use
	relaxed atomics instead of volatile and synchronize with release store.
	(_dl_tlsdesc_resolve_hold_fixup): Use relaxed atomics instead of
	volatile.
	* elf/tlsdeschtab.h (_dl_tlsdesc_resolve_early_return_p): Likewise.
2015-06-17 12:41:01 +01:00
..
cache.c Fix ldconfig segmentation fault with corrupted cache (Bug 18093). 2015-03-11 21:07:32 -04:00
chroot_canon.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
circleload1.c * elf/tst-tls-dlinfo.c: New file. 2006-03-01 06:18:49 +00:00
circlemod1.c Update. 2002-07-17 00:34:35 +00:00
circlemod1a.c Update. 2002-06-30 07:17:02 +00:00
circlemod2.c Update. 2002-07-17 00:34:35 +00:00
circlemod2a.c Update. 2002-07-17 00:34:35 +00:00
circlemod3.c Update. 2002-07-17 00:34:35 +00:00
circlemod3a.c Update. 2002-06-30 07:17:02 +00:00
constload1.c Include <stdio.h> for puts prototype. 2000-08-19 08:30:28 +00:00
constload2.c Add prototype for init. 2001-01-21 17:15:50 +00:00
constload3.c Update. 2000-12-17 17:50:56 +00:00
dblload.c Update. 2001-09-06 01:03:05 +00:00
dblloadmod1.c * elf/dblloadmod1.c: Add prototype to avoid warning. 2001-12-21 10:16:16 +00:00
dblloadmod2.c * elf/dblloadmod1.c: Add prototype to avoid warning. 2001-12-21 10:16:16 +00:00
dblloadmod3.c * elf/dblloadmod1.c: Add prototype to avoid warning. 2001-12-21 10:16:16 +00:00
dblunload.c Update. 2001-09-06 01:03:05 +00:00
dep1.c Update. 2000-12-15 16:03:57 +00:00
dep2.c Update. 2000-12-15 16:03:57 +00:00
dep3.c Update. 2000-12-15 16:03:57 +00:00
dep4.c Update. 2000-12-15 16:03:57 +00:00
dl-addr.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-brk.c 2005-12-13 Ulrich Drepper <drepper@redhat.com> 2005-12-14 08:43:25 +00:00
dl-cache.c Fix recursive dlopen. 2015-01-21 01:51:10 -05:00
dl-caller.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-close.c Avoid confusing compiler with dynamically impossible statically invalid dereference in _dl_close_worker. 2015-04-17 14:29:40 -07:00
dl-conflict.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-debug.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-deps.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-dst.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-environ.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-error.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-execstack.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-fini.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-fptr.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-hwcaps.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-init.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-iteratephdr.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-libc.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-load.c Fix segmentation fault when LD_LIBRARY_PATH contains only non-existings paths 2015-01-25 15:12:10 +10:00
dl-load.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-lookup.c Add ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA to x86 2015-03-31 05:16:57 -07:00
dl-machine-reject-phdr.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-map-segments.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-minimal.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-misc.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-object.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-open.c Fuller check for invalid NSID in _dl_open. 2015-04-17 12:11:58 -07:00
dl-origin.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-profile.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-profstub.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-reloc.c Don't issue an error if DT_PLTRELSZ is missing 2015-05-22 17:46:58 -07:00
dl-runtime.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-sbrk.c 2005-12-13 Ulrich Drepper <drepper@redhat.com> 2005-12-14 08:43:25 +00:00
dl-scope.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-support.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-sym.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-symaddr.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-sysdep.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-tls.c Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage 2015-03-17 00:31:49 -03:00
dl-trampoline.c 2005-12-13 Ulrich Drepper <drepper@redhat.com> 2005-12-14 08:43:25 +00:00
dl-tsd.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-unmap-segments.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-version.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dl-writev.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
do-rel.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
dynamic-link.h powerpc __tls_get_addr call optimization 2015-03-25 15:53:47 +10:30
elf.h elf.h: Add section compression constants and structures. 2015-05-01 22:48:19 +02:00
enbl-secure.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
failobj.c Update. 2000-12-17 17:50:56 +00:00
filter.c Update. 2000-08-19 07:17:09 +00:00
filtmod1.c Update. 2000-12-17 17:50:56 +00:00
filtmod2.c Update. 2000-12-17 17:50:56 +00:00
firstobj.c Add prototype. 2001-02-06 10:38:10 +00:00
gen-trusted-dirs.awk Update. 1999-05-03 21:59:35 +00:00
genrtldtbl.awk Testsuite for owrdexp. 1998-03-05 16:42:56 +00:00
get-dynamic-info.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
global.c (main): Use proper prototype. 2001-03-21 07:21:34 +00:00
globalmod1.c Update. 2001-04-06 15:23:41 +00:00
ifuncdep1.c Test for ELF IFUNC functionality. 2009-06-03 16:21:40 -07:00
ifuncdep1pic.c Test for ELF IFUNC functionality. 2009-06-03 16:21:40 -07:00
ifuncdep2.c Replace __attribute__((visibility("protected"))) 2015-03-06 17:05:42 -08:00
ifuncdep2pic.c Test for ELF IFUNC functionality. 2009-06-03 16:21:40 -07:00
ifuncdep5.c Add more IFUNC tests. 2009-06-22 15:07:40 -07:00
ifuncdep5pic.c Add more IFUNC tests. 2009-06-22 15:07:40 -07:00
ifuncmain1.c Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
ifuncmain1pic.c Test for ELF IFUNC functionality. 2009-06-03 16:21:40 -07:00
ifuncmain1picstatic.c Test for ELF IFUNC functionality. 2009-06-03 16:21:40 -07:00
ifuncmain1pie.c Test for ELF IFUNC functionality. 2009-06-03 16:21:40 -07:00
ifuncmain1static.c Test for ELF IFUNC functionality. 2009-06-03 16:21:40 -07:00
ifuncmain1staticpic.c Test for ELF IFUNC functionality. 2009-06-03 16:21:40 -07:00
ifuncmain1staticpie.c Add more IFUNC tests. 2009-06-22 15:07:40 -07:00
ifuncmain1vis.c Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
ifuncmain1vispic.c Test for ELF IFUNC functionality. 2009-06-03 16:21:40 -07:00
ifuncmain1vispie.c Test for ELF IFUNC functionality. 2009-06-03 16:21:40 -07:00
ifuncmain2.c Uglify IFUNC tests for PPC. 2009-10-30 00:48:54 -07:00
ifuncmain2pic.c Test for ELF IFUNC functionality. 2009-06-03 16:21:40 -07:00
ifuncmain2picstatic.c Test for ELF IFUNC functionality. 2009-06-03 16:21:40 -07:00
ifuncmain2static.c Test for ELF IFUNC functionality. 2009-06-03 16:21:40 -07:00
ifuncmain3.c Properly handle STT_GNU_IFUNC symbols in do_sym. 2009-11-06 09:30:56 -08:00
ifuncmain4.c Test for ELF IFUNC functionality. 2009-06-03 16:21:40 -07:00
ifuncmain4picstatic.c Test for ELF IFUNC functionality. 2009-06-03 16:21:40 -07:00
ifuncmain4static.c Test for ELF IFUNC functionality. 2009-06-03 16:21:40 -07:00
ifuncmain5.c Uglify IFUNC tests for PPC. 2009-10-30 00:48:54 -07:00
ifuncmain5pic.c Add more IFUNC tests. 2009-06-22 15:07:40 -07:00
ifuncmain5picstatic.c Add more IFUNC tests. 2009-06-22 15:07:40 -07:00
ifuncmain5pie.c Add more IFUNC tests. 2009-06-22 15:07:40 -07:00
ifuncmain5static.c Add more IFUNC tests. 2009-06-22 15:07:40 -07:00
ifuncmain5staticpic.c Add more IFUNC tests. 2009-06-22 15:07:40 -07:00
ifuncmain6pie.c Uglify IFUNC tests for PPC. 2009-10-30 00:48:54 -07:00
ifuncmain7.c Uglify IFUNC tests for PPC. 2009-10-30 00:48:54 -07:00
ifuncmain7pic.c Add more IFUNC tests. 2009-06-22 15:07:40 -07:00
ifuncmain7picstatic.c Add more IFUNC tests. 2009-06-22 15:07:40 -07:00
ifuncmain7pie.c Add more IFUNC tests. 2009-06-22 15:07:40 -07:00
ifuncmain7static.c Add more IFUNC tests. 2009-06-22 15:07:40 -07:00
ifuncmod1.c Replace __attribute__((visibility("protected"))) 2015-03-06 17:05:42 -08:00
ifuncmod3.c Uglify IFUNC tests for PPC. 2009-10-30 00:48:54 -07:00
ifuncmod5.c Replace __attribute__((visibility("protected"))) 2015-03-06 17:05:42 -08:00
ifuncmod6.c Add more IFUNC tests. 2009-06-22 15:07:40 -07:00
initfirst.c Update. 2001-02-02 06:54:15 +00:00
interp.c Prepare for restoration of .interp section in libpthread.so 2015-06-10 10:14:45 +00:00
lateglobal.c Update. 2004-04-21 18:58:31 +00:00
ldconfig.c Update copyright dates not handled by scripts/update-copyrights. 2015-01-02 16:54:45 +00:00
ldd.bash.in Update copyright dates not handled by scripts/update-copyrights. 2015-01-02 16:54:45 +00:00
link.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
loadfail.c Update. 2000-11-26 06:18:02 +00:00
loadtest.c * elf/tst-tls-dlinfo.c: New file. 2006-03-01 06:18:49 +00:00
ltglobmod1.c Update. 2000-12-17 17:50:56 +00:00
ltglobmod2.c Update. 2000-12-15 16:03:57 +00:00
Makefile Prepare for restoration of .interp section in libpthread.so 2015-06-10 10:14:45 +00:00
multiload.c Update. 2000-11-26 06:18:02 +00:00
neededobj1.c Update. 2000-12-17 17:50:56 +00:00
neededobj2.c Update. 2000-12-17 17:50:56 +00:00
neededobj3.c Update. 2000-12-17 17:50:56 +00:00
neededobj4.c Update. 2000-12-17 17:50:56 +00:00
neededobj5.c Update. 2000-12-31 06:09:08 +00:00
neededobj6.c Update. 2000-12-31 06:09:08 +00:00
neededtest2.c * elf/tst-tls-dlinfo.c: New file. 2006-03-01 06:18:49 +00:00
neededtest3.c * elf/tst-tls-dlinfo.c: New file. 2006-03-01 06:18:49 +00:00
neededtest4.c Remove pre-ISO C support 2012-01-07 23:57:22 -05:00
neededtest.c * elf/tst-tls-dlinfo.c: New file. 2006-03-01 06:18:49 +00:00
next.c Update. 2000-11-26 06:18:02 +00:00
nextmod1.c Update. 2000-12-17 17:50:56 +00:00
nextmod2.c Update. 2000-12-17 17:50:56 +00:00
nodel2mod1.c Test modules for DF_1_NODELETE test. 2003-01-12 07:52:53 +00:00
nodel2mod2.c Test modules for DF_1_NODELETE test. 2003-01-12 07:52:53 +00:00
nodel2mod3.c Test modules for DF_1_NODELETE test. 2003-01-12 07:52:53 +00:00
nodelete2.c Update. 2003-01-12 10:11:16 +00:00
nodelete.c Update. 2000-11-26 06:18:02 +00:00
nodelmod1.c Update. 2000-08-25 19:33:19 +00:00
nodelmod2.c Update. 2000-08-25 19:33:19 +00:00
nodelmod3.c Update. 2000-12-17 17:50:56 +00:00
nodelmod4.c Update. 2000-08-25 19:33:19 +00:00
nodlopen2.c Update. 2002-02-10 22:40:17 +00:00
nodlopen.c Update. 2000-07-21 04:42:21 +00:00
nodlopenmod2.c Update. 2002-03-03 19:43:30 +00:00
nodlopenmod.c Update. 2000-07-21 04:42:21 +00:00
noload.c Fix memory leak in dlopen with RTLD_NOLOAD. 2011-02-25 20:49:48 -05:00
order2.c * elf/Makefile: Add rules to build and run order2. 2005-03-19 08:04:37 +00:00
order2mod1.c * elf/Makefile: Add rules to build and run order2. 2005-03-19 08:04:37 +00:00
order2mod2.c * posix/tst-execle1.c (do_test): Add a const. 2005-12-27 22:50:12 +00:00
order2mod3.c * elf/Makefile: Add rules to build and run order2. 2005-03-19 08:04:37 +00:00
order2mod4.c * elf/Makefile: Add rules to build and run order2. 2005-03-19 08:04:37 +00:00
order.c Update. 2000-11-26 06:18:02 +00:00
origtest.c Update. 2000-11-26 06:18:02 +00:00
pathoptobj.c Update. 2000-12-17 17:50:56 +00:00
pldd-xx.c pldd: Use struct scratch_buffer instead of extend_alloca 2015-04-08 21:06:49 +02:00
pldd.c pldd: Use struct scratch_buffer instead of extend_alloca 2015-04-08 21:06:49 +02:00
preloadtest.c Update. 2000-12-15 16:03:57 +00:00
readelflib.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
readlib.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
reldep2.c Update. 2001-09-08 17:45:32 +00:00
reldep3.c Fix typos. 2013-08-21 19:48:48 +02:00
reldep4.c Avoid compile warning. 2001-09-22 15:44:07 +00:00
reldep4mod1.c Update. 2001-05-22 23:55:23 +00:00
reldep4mod2.c Update. 2001-06-22 13:50:51 +00:00
reldep4mod3.c Update. 2001-05-22 23:55:23 +00:00
reldep4mod4.c Update. 2001-06-22 13:50:51 +00:00
reldep5.c Update. 2001-09-22 15:44:35 +00:00
reldep6.c Update. 2003-01-12 10:11:16 +00:00
reldep6mod0.c Update. 2001-10-01 00:14:14 +00:00
reldep6mod1.c Update. 2001-10-01 00:14:14 +00:00
reldep6mod2.c Update. 2001-10-01 00:14:14 +00:00
reldep6mod3.c Update. 2001-10-01 00:14:14 +00:00
reldep6mod4.c Update. 2001-10-01 00:14:14 +00:00
reldep7.c Update. 2002-04-15 17:10:22 +00:00
reldep7mod1.c Update. 2002-04-15 17:10:22 +00:00
reldep7mod2.c Update. 2002-04-15 17:10:22 +00:00
reldep8.c Update. 2002-12-30 20:25:40 +00:00
reldep8mod1.c Update. 2002-12-30 20:25:40 +00:00
reldep8mod2.c Update. 2002-12-30 20:25:40 +00:00
reldep8mod3.c Update. 2002-12-30 20:25:40 +00:00
reldep9.c Update. 2003-01-12 10:11:16 +00:00
reldep9mod1.c Update. 2003-01-12 10:11:16 +00:00
reldep9mod2.c Update. 2003-01-12 10:11:16 +00:00
reldep9mod3.c Update. 2003-01-12 10:11:16 +00:00
reldep.c Fix typos. 2013-08-21 19:48:48 +02:00
reldepmod1.c Update. 2000-12-17 17:50:56 +00:00
reldepmod2.c Update. 2000-12-17 17:50:56 +00:00
reldepmod3.c Update. 2000-12-17 17:50:56 +00:00
reldepmod4.c Update. 2000-12-17 17:50:56 +00:00
reldepmod5.c * elf/dblloadmod1.c: Add prototype to avoid warning. 2001-12-21 10:16:16 +00:00
reldepmod6.c * elf/dblloadmod1.c: Add prototype to avoid warning. 2001-12-21 10:16:16 +00:00
resolvfail.c Update. 1999-08-02 19:56:07 +00:00
restest1.c Update. 2000-11-26 06:18:02 +00:00
restest2.c Update. 2001-05-22 22:30:18 +00:00
rtld-debugger-interface.txt Add SystemTap static probes to the runtime linker. [BZ #14298] 2012-07-27 14:03:20 +01:00
rtld-Rules Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
rtld.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
setup-vdso.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
sln.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
sofini.c Remove .ctors' and .dtors' output sections 2010-12-24 20:14:37 -05:00
soinit.c Fix missing .ctors/.dtors lead word in soinit 2011-06-27 20:26:54 -07:00
sotruss-lib.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
sotruss.sh Update copyright dates not handled by scripts/update-copyrights. 2015-01-02 16:54:45 +00:00
sprof.c sprof: Make an error message identical to two others, and more accurate. 2015-02-25 00:04:55 -05:00
static-stubs.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
testobj1_1.c Update. 2000-12-15 16:03:57 +00:00
testobj1.c Update. 2000-12-15 16:03:57 +00:00
testobj2.c * sysdeps/generic/ldsodefs.h (_dl_out_of_memory_internal): Remove decl. 2005-03-06 00:08:10 +00:00
testobj3.c Update. 2000-12-15 16:03:57 +00:00
testobj4.c Update. 2000-12-15 16:03:57 +00:00
testobj5.c Update. 2000-12-15 16:03:57 +00:00
testobj6.c Update. 2000-12-15 16:03:57 +00:00
testobj.h Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
tls-macros.h Split tls-macros.h into sysdeps directories. 2012-07-17 11:30:58 +00:00
tlsdeschtab.h [BZ 18034][AArch64] Lazy TLSDESC relocation data race fix 2015-06-17 12:41:01 +01:00
tst-addr1.c * dlfcn/Makefile (LDLIBS-bug-atexit3-lib.so): Add 2006-08-31 17:16:11 +00:00
tst-align2.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-align.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-alignmod2.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-alignmod.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-array1-static.c * csu/elf-init.c (__libc_csu_fini): Enable if LIBC_NONSHARED 2005-02-14 21:25:50 +00:00
tst-array1.c Set constructor/destructor priority to 1000 2012-11-16 07:40:38 -08:00
tst-array1.exp * sysdeps/ia64/elf/initfini.c [HAVE_INITFINI_ARRAY] 2002-11-07 22:28:16 +00:00
tst-array2.c * sysdeps/ia64/elf/initfini.c [HAVE_INITFINI_ARRAY] 2002-11-07 22:28:16 +00:00
tst-array2.exp * sysdeps/ia64/elf/initfini.c [HAVE_INITFINI_ARRAY] 2002-11-07 22:28:16 +00:00
tst-array2dep.c Set constructor/destructor priority to 1000 2012-11-16 07:40:38 -08:00
tst-array3.c * sysdeps/ia64/elf/initfini.c [HAVE_INITFINI_ARRAY] 2002-11-07 22:28:16 +00:00
tst-array4.c Update. 2003-01-27 21:03:22 +00:00
tst-array4.exp Update. 2003-01-27 21:03:22 +00:00
tst-array5-static.c [BZ #974] 2005-07-07 23:00:02 +00:00
tst-array5-static.exp [BZ #974] 2005-07-07 23:00:02 +00:00
tst-array5.c [BZ #974] 2005-07-07 23:00:02 +00:00
tst-array5.exp [BZ #974] 2005-07-07 23:00:02 +00:00
tst-array5dep.c [BZ #974] 2005-07-07 23:00:02 +00:00
tst-audit1.c * csu/elf-init.c (__libc_csu_fini): Don't do anything here. 2005-01-06 22:40:27 +00:00
tst-audit2.c Make sure that calloc is called at least once 2015-05-28 05:06:53 -07:00
tst-audit8.c Skip audit if l_reloc_result is NULL 2012-11-14 15:44:40 -08:00
tst-audit9.c BZ #16613: Support TLS in audit libraries. 2014-02-25 13:18:15 -05:00
tst-auditmod1.c Move testsuite audit definitions to sysdeps tst-audit.h files. 2012-07-26 11:29:07 +00:00
tst-auditmod9a.c BZ #16613: Support TLS in audit libraries. 2014-02-25 13:18:15 -05:00
tst-auditmod9b.c BZ #16613: Support TLS in audit libraries. 2014-02-25 13:18:15 -05:00
tst-auxv.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-deep1.c Update. 2004-09-23 07:45:38 +00:00
tst-deep1mod1.c Update. 2004-09-23 07:45:38 +00:00
tst-deep1mod2.c Update. 2004-09-23 07:45:38 +00:00
tst-deep1mod3.c Update. 2004-09-23 07:45:38 +00:00
tst-dl-iter-static.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-dlmodcount.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-dlmopen1.c [BZ #77] 2004-10-14 02:08:23 +00:00
tst-dlmopen1mod.c Update. 2004-10-27 20:27:40 +00:00
tst-dlmopen2.c [BZ #77] 2004-10-14 02:08:23 +00:00
tst-dlmopen3.c Update. 2004-10-28 06:53:20 +00:00
tst-dlopen-aout.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-dlopenrpath.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-dlopenrpathmod.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-execstack-mod.c * sysdeps/i386/dl-machine.h (RTLD_START): Set __libc_stack_end before 2003-09-23 12:07:26 +00:00
tst-execstack-needed.c * sysdeps/i386/dl-machine.h (RTLD_START): Set __libc_stack_end before 2003-09-23 12:07:26 +00:00
tst-execstack-prog.c * elf/rtld.c (dl_main): In rtld_is_main case, reinitialize 2003-09-24 01:56:08 +00:00
tst-execstack.c Fix stack size and address inconsistency due to executable stack 2012-05-26 09:48:26 +05:30
tst-global1.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-initorder2.c Correct cycle detection during dependency sorting 2011-08-22 16:08:16 -04:00
tst-initorder2.exp Correct cycle detection during dependency sorting 2011-08-22 16:08:16 -04:00
tst-initorder.c Fix ordering of DSO constructors and destructors. 2011-01-19 16:00:11 -05:00
tst-initorder.exp Fix ordering of DSO constructors and destructors. 2011-01-19 16:00:11 -05:00
tst-initordera1.c Fix ordering of DSO constructors and destructors. 2011-01-19 16:00:11 -05:00
tst-initordera2.c Fix ordering of DSO constructors and destructors. 2011-01-19 16:00:11 -05:00
tst-initordera3.c Fix ordering of DSO constructors and destructors. 2011-01-19 16:00:11 -05:00
tst-initordera4.c Fix ordering of DSO constructors and destructors. 2011-01-19 16:00:11 -05:00
tst-initorderb1.c Fix ordering of DSO constructors and destructors. 2011-01-19 16:00:11 -05:00
tst-initorderb2.c Fix ordering of DSO constructors and destructors. 2011-01-19 16:00:11 -05:00
tst-leaks1-static.c Check the main application only if SHARED is defined 2012-10-20 16:16:59 -07:00
tst-leaks1.c * elf/rtld.c (dl_main): Run final self-relocation after setting up TLS. 2006-03-19 07:48:05 +00:00
tst-null-argv-lib.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-null-argv.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-order-a1.c Fix ordering of DSO constructors and destructors. 2011-01-19 16:00:11 -05:00
tst-order-a2.c Fix ordering of DSO constructors and destructors. 2011-01-19 16:00:11 -05:00
tst-order-a3.c Fix ordering of DSO constructors and destructors. 2011-01-19 16:00:11 -05:00
tst-order-a4.c Fix ordering of DSO constructors and destructors. 2011-01-19 16:00:11 -05:00
tst-order-b1.c Fix ordering of DSO constructors and destructors. 2011-01-19 16:00:11 -05:00
tst-order-b2.c Fix ordering of DSO constructors and destructors. 2011-01-19 16:00:11 -05:00
tst-order-main.c Fix ordering of DSO constructors and destructors. 2011-01-19 16:00:11 -05:00
tst-pathopt.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-pathopt.sh Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-pie1.c [BZ #262] 2004-07-16 17:56:45 +00:00
tst-pie2.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-piemod1.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-protected1a.c Add a testcase for copy reloc against protected data 2015-03-31 05:21:12 -07:00
tst-protected1b.c Add a testcase for copy reloc against protected data 2015-03-31 05:21:12 -07:00
tst-protected1mod.h Add a testcase for copy reloc against protected data 2015-03-31 05:21:12 -07:00
tst-protected1moda.c Add a testcase for copy reloc against protected data 2015-03-31 05:21:12 -07:00
tst-protected1modb.c Add a testcase for copy reloc against protected data 2015-03-31 05:21:12 -07:00
tst-ptrguard1-static.c BZ #15754: CVE-2013-4788 2013-09-23 00:52:09 -04:00
tst-ptrguard1.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-relsort1.c Fix warning 2012-05-17 22:00:57 +02:00
tst-relsort1mod1.c Sort objects before relocations 2012-01-27 15:05:19 -05:00
tst-relsort1mod2.c Sort objects before relocations 2012-01-27 15:05:19 -05:00
tst-rtld-load-self.sh Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-stackguard1-static.c * Versions.def (ld): Add GLIBC_2.4. 2005-06-26 18:14:26 +00:00
tst-stackguard1.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-thrlock.c . 2007-07-31 13:33:18 +00:00
tst-tls1-static.c * elf/tst-tls1-static.c: New file. 2002-08-28 10:42:59 +00:00
tst-tls1.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tls2-static.c * elf/tst-tls1-static.c: New file. 2002-08-28 10:42:59 +00:00
tst-tls2.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tls3.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tls4.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tls5.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tls6.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tls7.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tls8.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tls9-static.c 2002-10-21 Roland McGrath <roland@redhat.com> 2002-10-22 06:22:38 +00:00
tst-tls9.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tls10.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-tls10.h Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tls11.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-tls12.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-tls13.c * elf/tst-tls13.c (do_test): Avoid using the library path when 2005-12-27 22:29:27 +00:00
tst-tls14.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tls15.c [BZ #786] 2005-03-20 22:25:59 +00:00
tst-tls16.c * include/link.h (FORCED_DYNAMIC_TLS_OFFSET): Define. 2008-01-17 20:20:00 +00:00
tst-tls17.c * elf/Makefile: Add rules to build and run tst-tls17. 2008-10-17 15:24:10 +00:00
tst-tls18.c * elf/dl-tls.c (__tls_get_addr): After calling _dl_update_slotinfo 2008-10-31 20:50:16 +00:00
tst-tls19.c Fix handling of static TLS in dlopen'ed objects 2011-05-14 21:25:43 -04:00
tst-tls19mod1.c Fix handling of static TLS in dlopen'ed objects 2011-05-14 21:25:43 -04:00
tst-tls19mod2.c Fix handling of static TLS in dlopen'ed objects 2011-05-14 21:25:43 -04:00
tst-tls19mod3.c Fix handling of static TLS in dlopen'ed objects 2011-05-14 21:25:43 -04:00
tst-tls-dlinfo.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tlsalign-extern-static.c BZ#18383: Another test case, with TLS refs and defs in separate TUs. 2015-06-02 16:55:36 -07:00
tst-tlsalign-extern.c BZ#18383: Another test case, with TLS refs and defs in separate TUs. 2015-06-02 16:55:36 -07:00
tst-tlsalign-lib.c BZ#18383: Add test case for large alignment in TLS blocks. 2015-05-06 13:32:18 -07:00
tst-tlsalign-static.c BZ#18383: Add test case for large alignment in TLS blocks. 2015-05-06 13:32:18 -07:00
tst-tlsalign-vars.c BZ#18383: Another test case, with TLS refs and defs in separate TUs. 2015-06-02 16:55:36 -07:00
tst-tlsalign.c BZ#18383: Add test case for large alignment in TLS blocks. 2015-05-06 13:32:18 -07:00
tst-tlsmod1.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tlsmod2.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tlsmod3.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tlsmod4.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tlsmod5.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tlsmod6.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tlsmod7.c Cleanup of configuration options 2011-09-10 14:34:15 -04:00
tst-tlsmod8.c Cleanup of configuration options 2011-09-10 14:34:15 -04:00
tst-tlsmod9.c Cleanup of configuration options 2011-09-10 14:34:15 -04:00
tst-tlsmod10.c Update. 2003-04-17 19:19:29 +00:00
tst-tlsmod11.c Cleanup of configuration options 2011-09-10 14:34:15 -04:00
tst-tlsmod12.c Cleanup of configuration options 2011-09-10 14:34:15 -04:00
tst-tlsmod13.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tlsmod13a.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tlsmod14a.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tlsmod14b.c Update. 2003-07-24 20:07:00 +00:00
tst-tlsmod15a.c [BZ #786] 2005-03-20 22:25:59 +00:00
tst-tlsmod15b.c Cleanup of configuration options 2011-09-10 14:34:15 -04:00
tst-tlsmod16a.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tlsmod16b.c Don't include tls.h in test cases 2013-10-18 19:45:36 +05:30
tst-tlsmod17a.c * elf/Makefile: Add rules to build and run tst-tls17. 2008-10-17 15:24:10 +00:00
tst-tlsmod17b.c * elf/Makefile: Add rules to build and run tst-tls17. 2008-10-17 15:24:10 +00:00
tst-tlsmod18a.c * elf/dl-tls.c (__tls_get_addr): After calling _dl_update_slotinfo 2008-10-31 20:50:16 +00:00
tst-unique1.c Handle unloading of DSO with a unique symbol definition. 2009-07-23 07:07:53 -07:00
tst-unique1mod1.c Get rid of ASM_TYPE_DIRECTIVE{,_PREFIX}. 2012-08-02 21:04:29 +02:00
tst-unique1mod2.c Get rid of ASM_TYPE_DIRECTIVE{,_PREFIX}. 2012-08-02 21:04:29 +02:00
tst-unique2.c Implement STB_GNU_UNIQUE handling. 2009-07-09 23:52:22 -07:00
tst-unique2mod1.c Get rid of ASM_TYPE_DIRECTIVE{,_PREFIX}. 2012-08-02 21:04:29 +02:00
tst-unique2mod2.c Get rid of ASM_TYPE_DIRECTIVE{,_PREFIX}. 2012-08-02 21:04:29 +02:00
tst-unique3.cc Remove gets declarations in C++ tests. 2012-01-25 16:50:17 +00:00
tst-unique3.h Fix copy relocations handling of unique objects. 2011-03-10 12:51:33 -05:00
tst-unique3lib2.cc Remove gets declarations in C++ tests. 2012-01-25 16:50:17 +00:00
tst-unique3lib.cc Remove gets declarations in C++ tests. 2012-01-25 16:50:17 +00:00
tst-unique4.cc Remove gets declarations in C++ tests. 2012-01-25 16:50:17 +00:00
tst-unique4.h Fix resizing able for unique symbols when adding symbol for copy relocation 2011-05-12 21:59:09 -04:00
tst-unique4lib.cc Fix warning in elf/tst-unique4lib.cc. 2014-12-16 10:26:48 +01:00
unload2.c * elf/tst-tls-dlinfo.c: New file. 2006-03-01 06:18:49 +00:00
unload2dep.c Update. 2000-12-17 17:50:56 +00:00
unload2mod.c Update. 2000-12-17 17:50:56 +00:00
unload3.c [BZ #776] 2005-03-03 08:28:23 +00:00
unload3mod1.c [BZ #776] 2005-03-03 08:28:23 +00:00
unload3mod2.c [BZ #776] 2005-03-03 08:28:23 +00:00
unload3mod3.c [BZ #776] 2005-03-03 08:28:23 +00:00
unload3mod4.c * sysdeps/generic/ldsodefs.h (_dl_out_of_memory_internal): Remove decl. 2005-03-06 00:08:10 +00:00
unload4.c Test cases for correct unloading. 2005-03-18 10:54:53 +00:00
unload4mod1.c Test cases for correct unloading. 2005-03-18 10:54:53 +00:00
unload4mod2.c Test cases for correct unloading. 2005-03-18 10:54:53 +00:00
unload4mod3.c Test cases for correct unloading. 2005-03-18 10:54:53 +00:00
unload4mod4.c Test cases for correct unloading. 2005-03-18 10:54:53 +00:00
unload5.c Test cases for correct unloading. 2005-03-18 10:54:53 +00:00
unload6.c * elf/dl-close.c: Include stddef.h. 2005-04-27 01:39:11 +00:00
unload6mod1.c * elf/dl-close.c: Include stddef.h. 2005-04-27 01:39:11 +00:00
unload6mod2.c * elf/dl-close.c: Include stddef.h. 2005-04-27 01:39:11 +00:00
unload6mod3.c * elf/dl-close.c: Include stddef.h. 2005-04-27 01:39:11 +00:00
unload7.c * elf/dl-close.c (_dl_close): If dependency is not unloaded make 2006-09-19 14:42:12 +00:00
unload7mod1.c * elf/dl-close.c (_dl_close): If dependency is not unloaded make 2006-09-19 14:42:12 +00:00
unload7mod2.c * elf/dl-close.c (_dl_close): If dependency is not unloaded make 2006-09-19 14:42:12 +00:00
unload8.c Fix scope handling during dl_close 2011-08-24 09:32:13 +02:00
unload8mod1.c Fix scope handling during dl_close 2011-08-24 09:32:13 +02:00
unload8mod1x.c Fix scope handling during dl_close 2011-08-24 09:32:13 +02:00
unload8mod2.c Fix scope handling during dl_close 2011-08-24 09:32:13 +02:00
unload8mod3.c Fix scope handling during dl_close 2011-08-24 09:32:13 +02:00
unload.c * elf/tst-tls-dlinfo.c: New file. 2006-03-01 06:18:49 +00:00
unloadmod.c Update. 2000-08-26 23:41:19 +00:00
Versions Add empty GLIBC_2.2.5 version to elf/Versions. 2014-03-25 21:54:09 +00:00
vismain.c Compile vismain with -fPIE and link with -pie 2015-02-27 14:13:28 -08:00
vismod1.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
vismod2.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
vismod3.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
vismod.h 2003-03-26 H.J. Lu <hjl@gnu.org> 2003-03-29 03:46:03 +00:00