glibc/sysdeps/x86_64
H.J. Lu d811d240c0 x86: Check IFUNC definition in unrelocated executable [BZ #20019]
Calling an IFUNC function defined in unrelocated executable also leads to
segfault.  Issue a fatal error message when calling IFUNC function defined
in the unrelocated executable from a shared library.

On x86, ifuncmain6pie failed with:

[hjl@gnu-cfl-2 build-i686-linux]$ ./elf/ifuncmain6pie --direct
./elf/ifuncmain6pie: IFUNC symbol 'foo' referenced in '/export/build/gnu/tools-build/glibc-32bit/build-i686-linux/elf/ifuncmod6.so' is defined in the executable and creates an unsatisfiable circular dependency.
[hjl@gnu-cfl-2 build-i686-linux]$ readelf -rW elf/ifuncmod6.so | grep foo
00003ff4  00000706 R_386_GLOB_DAT         0000400c   foo_ptr
00003ff8  00000406 R_386_GLOB_DAT         00000000   foo
0000400c  00000401 R_386_32               00000000   foo
[hjl@gnu-cfl-2 build-i686-linux]$

Remove non-JUMP_SLOT relocations against foo in ifuncmod6.so, which
trigger the circular IFUNC dependency, and build ifuncmain6pie with
-Wl,-z,lazy.

(cherry picked from commits 6ea5b57afa
 and 7137d682eb)
2021-01-13 14:27:36 -08:00
..
64 Move architecture shlib-versions files to Linux-specific directories. 2014-07-17 14:31:12 +00:00
fpu x86-64: Compile branred.c with -mprefer-vector-width=128 [BZ #24603] 2019-07-24 14:48:43 -07:00
multiarch x86-64: Avoid rep movsb with short distance [BZ #27130] 2021-01-12 06:09:23 -08:00
nptl x86_64: Remove wrong THREAD_ATOMIC_* macros 2019-01-03 18:38:14 -02:00
x32 x86-64 memcmp: Use unsigned Jcc instructions on size [BZ #24155] 2019-02-04 06:31:13 -08:00
____longjmp_chk.S ____longjmp_chk is now OS-specific. 2009-07-30 21:42:27 -07:00
__longjmp.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
_mcount.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
abort-instr.h
add_n.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
addmul_1.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
bsd-_setjmp.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
bsd-setjmp.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
bzero.S Make an empty file. 2007-10-16 05:59:15 +00:00
configure x86-64: Compile branred.c with -mprefer-vector-width=128 [BZ #24603] 2019-07-24 14:48:43 -07:00
configure.ac x86-64: Compile branred.c with -mprefer-vector-width=128 [BZ #24603] 2019-07-24 14:48:43 -07:00
crti.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
crtn.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
dl-irel.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
dl-machine.h x86: Check IFUNC definition in unrelocated executable [BZ #20019] 2021-01-13 14:27:36 -08:00
dl-procinfo.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
dl-runtime.c * elf/dl-runtime.c (reloc_offset): Define. 2009-03-15 00:26:14 +00:00
dl-tls.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
dl-tls.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
dl-tlsdesc.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
dl-tlsdesc.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
dl-trampoline.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
dl-trampoline.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ffs.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ffsll.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
htonl.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ifuncmain8.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ifuncmod8.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
Implies Add float128 support for x86_64, x86. 2017-06-26 22:02:24 +00:00
isa.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
jmpbuf-offsets.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
jmpbuf-unwind.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
l10nflist.c Minor optimization of popcount in l10nflist 2011-08-11 14:07:04 -04:00
ldbl2mpn.c [BZ #4586] 2007-06-08 02:50:59 +00:00
link-defines.sym Replace __int128 with __int128_t 2014-05-30 10:50:21 -07:00
locale-defines.sym Implement optimized strcaecmp for x86-64. 2010-07-30 00:14:04 -07:00
localplt.data ld.so: Introduce struct dl_exception 2017-08-10 16:54:57 +02:00
lshift.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
machine-gmon.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
Makefile Rename the glibc.tune namespace to glibc.cpu 2018-08-02 23:49:19 +05:30
memchr.S x86-64 memchr/wmemchr: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:24:13 -08:00
memcmp.S x86-64 memcmp: Use unsigned Jcc instructions on size [BZ #24155] 2019-02-04 06:31:13 -08:00
memcopy.h X86-64: Add dummy memcopy.h and wordcopy.c 2016-06-09 04:38:34 -07:00
memcpy_chk.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memcpy.S X86-64: Remove previous default/SSE2/AVX2 memcpy/memmove 2016-06-08 13:58:08 -07:00
memmove_chk.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memmove.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mempcpy_chk.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mempcpy.S X86-64: Remove previous default/SSE2/AVX2 memcpy/memmove 2016-06-08 13:58:08 -07:00
memrchr.S x86-64 memrchr: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:30:12 -08:00
memset_chk.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memset.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memusage.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mp_clz_tab.c * sysdeps/x86_64/mp_clz_tab.c: New file. 2009-04-15 04:30:41 +00:00
mul_1.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
preconfigure rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00
preconfigure.ac rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00
rawmemchr.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
rshift.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
rtld-offsets.sym x86-64: Align the stack in __tls_get_addr [BZ #21609] 2017-07-06 04:43:20 -07:00
sched_cpucount.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
setjmp.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
stack-aliasing.h Clean up stack-coloring macros. 2014-06-20 19:50:16 -07:00
stackguard-macros.h BZ #15754: CVE-2013-4788 2013-09-23 00:52:09 -04:00
stackinfo.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
start.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
stpcpy.S Update. 2004-05-28 06:56:51 +00:00
strcasecmp_l-nonascii.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
strcasecmp_l.S Implement optimized strcaecmp for x86-64. 2010-07-30 00:14:04 -07:00
strcasecmp.S Implement optimized strcaecmp for x86-64. 2010-07-30 00:14:04 -07:00
strcat.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strchr.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strchrnul.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strcmp.S x86-64 strncmp family: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:34:04 -08:00
strcpy.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strcspn.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strlen.S x86-64 strnlen/wcsnlen: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:36:47 -08:00
strncase_l-nonascii.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
strncase_l.S Add optimized strncasecmp versions for x86-64. 2010-08-14 22:04:01 -07:00
strncase.S Add optimized strncasecmp versions for x86-64. 2010-08-14 22:04:01 -07:00
strncmp.S Add SSE2 support to str{,n}cmp for x86-64. 2009-07-26 13:32:28 -07:00
strnlen.S Faster strlen on x64. 2013-03-18 07:39:12 +01:00
strpbrk.S x86-64: Implement strcspn/strpbrk/strspn IFUNC selectors in C 2017-06-15 08:59:05 -07:00
strrchr.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strspn.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
sub_n.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
submul_1.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
sysdep.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tls_get_addr.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tls-macros.h Split tls-macros.h into sysdeps directories. 2012-07-17 11:30:58 +00:00
tlsdesc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tlsdesc.sym x86-64: Align the stack in __tls_get_addr [BZ #21609] 2017-07-06 04:43:20 -07:00
tst-audit3.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-audit4-aux.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-audit4.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-audit5.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-audit6.c Modify several tests to use test-skeleton.c 2015-07-15 15:10:23 +05:30
tst-audit7.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-audit10-aux.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-audit10.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-audit.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-auditmod3a.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-auditmod3b.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-auditmod4a.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-auditmod4b.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-auditmod5a.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-auditmod5b.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-auditmod6a.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-auditmod6b.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-auditmod6c.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-auditmod7a.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-auditmod7b.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-auditmod10a.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-auditmod10b.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-avx512-aux.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-avx512.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-avx512mod.c x86-64: Verify that _dl_runtime_resolve preserves vector registers 2017-02-09 12:19:58 -08:00
tst-avx-aux.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-avx.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-avxmod.c x86-64: Verify that _dl_runtime_resolve preserves vector registers 2017-02-09 12:19:58 -08:00
tst-mallocalign1.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-platform-1.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-platformmod-1.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-platformmod-2.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-quad1.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-quad1pie.c Handle R_X86_64_RELATIVE64 and R_X86_64_64 for x32 2012-05-10 17:05:06 -07:00
tst-quad2.c Handle R_X86_64_RELATIVE64 and R_X86_64_64 for x32 2012-05-10 17:05:06 -07:00
tst-quad2pie.c Handle R_X86_64_RELATIVE64 and R_X86_64_64 for x32 2012-05-10 17:05:06 -07:00
tst-quadmod1.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-quadmod1pie.S Handle R_X86_64_RELATIVE64 and R_X86_64_64 for x32 2012-05-10 17:05:06 -07:00
tst-quadmod2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-quadmod2pie.S Handle R_X86_64_RELATIVE64 and R_X86_64_64 for x32 2012-05-10 17:05:06 -07:00
tst-split-dynreloc.c Fix dynamic linker issue with bind-now 2015-08-19 05:37:01 -07:00
tst-split-dynreloc.lds Fix dynamic linker issue with bind-now 2015-08-19 05:37:01 -07:00
tst-sse.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-ssemod.c x86-64: Verify that _dl_runtime_resolve preserves vector registers 2017-02-09 12:19:58 -08:00
tst-stack-align.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-x86_64-1.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-x86_64mod-1.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
Versions Move __fentry__ version definition to sysdeps/{i386,x86_64} 2018-08-10 09:07:44 +02:00
wcschr.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcscmp.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcslen.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsrchr.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wmemset_chk.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wmemset.S x86-64: Optimize wmemset with SSE2/AVX2/AVX512 2017-06-05 11:09:59 -07:00
wordcopy.c X86-64: Add dummy memcopy.h and wordcopy.c 2016-06-09 04:38:34 -07:00