glibc/sysdeps/x86
Florian Weimer 5d28a8962d elf: Add _dl_find_object function
It can be used to speed up the libgcc unwinder, and the internal
_dl_find_dso_for_object function (which is used for caller
identification in dlopen and related functions, and in dladdr).

_dl_find_object is in the internal namespace due to bug 28503.
If libgcc switches to _dl_find_object, this namespace issue will
be fixed.  It is located in libc for two reasons: it is necessary
to forward the call to the static libc after static dlopen, and
there is a link ordering issue with -static-libgcc and libgcc_eh.a
because libc.so is not a linker script that includes ld.so in the
glibc build tree (so that GCC's internal -lc after libgcc_eh.a does
not pick up ld.so).

It is necessary to do the i386 customization in the
sysdeps/x86/bits/dl_find_object.h header shared with x86-64 because
otherwise, multilib installations are broken.

The implementation uses software transactional memory, as suggested
by Torvald Riegel.  Two copies of the supporting data structures are
used, also achieving full async-signal-safety.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2021-12-28 22:52:56 +01:00
..
bits elf: Add _dl_find_object function 2021-12-28 22:52:56 +01:00
fpu x86-64: Add vector acos/acosf implementation to libmvec 2021-12-22 13:03:14 -08:00
include x86-64: Remove LD_PREFER_MAP_32BIT_EXEC support [BZ #28656] 2021-12-10 14:01:34 -08:00
nptl nptl: Add <thread_pointer.h> for defining __thread_pointer 2021-12-09 09:49:32 +01:00
sys/platform x86: Install <bits/platform/x86.h> [BZ #27958] 2021-07-23 05:12:51 -07:00
__longjmp_cancel.S Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
abi-note.c x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker [BZ #26717] 2021-01-07 13:10:13 -08:00
atomic-machine.h Remove atomic-machine.h atomic typedefs 2021-12-28 14:57:57 -03:00
cacheinfo.c x86: Handle _SC_LEVEL1_ICACHE_LINESIZE [BZ #27444] 2021-03-15 05:43:26 -07:00
cacheinfo.h x86-64: Add Avoid_Short_Distance_REP_MOVSB 2021-07-28 13:23:57 -07:00
cet-control.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
check-cet.awk Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
configure x86: fix Autoconf caching of instruction support checks [BZ #27991] 2021-08-19 09:11:35 -03:00
configure.ac x86: fix Autoconf caching of instruction support checks [BZ #27991] 2021-08-19 09:11:35 -03:00
cpu-features-offsets.sym x86: Cleanup cpu-features-offsets.sym 2018-08-03 06:42:09 -07:00
cpu-features.c x86: Don't set Prefer_No_AVX512 for processors with AVX512 and AVX-VNNI 2021-12-06 07:14:12 -08:00
cpu-tunables.c x86-64: Remove LD_PREFER_MAP_32BIT_EXEC support [BZ #28656] 2021-12-10 14:01:34 -08:00
dl-cacheinfo.h x86: Double size of ERMS rep_movsb_threshold in dl-cacheinfo.h 2021-11-06 16:18:08 -05:00
dl-cet.c x86: Properly set usable CET feature bits [BZ #26625] 2021-01-29 03:58:11 -08:00
dl-diagnostics-cpu.c x86: Install <bits/platform/x86.h> [BZ #27958] 2021-07-23 05:12:51 -07:00
dl-get-cpu-features.c Fix misplaced const 2021-01-25 15:09:02 +01:00
dl-hwcap.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-isa-level.h ldconfig/x86: Store ISA level in cache and aux cache 2021-01-13 05:51:17 -08:00
dl-lookupcfg.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-minsigstacksize.h sysconf: Add _SC_MINSIGSTKSZ/_SC_SIGSTKSZ [BZ #20305] 2021-02-01 11:00:52 -08:00
dl-procinfo.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-procinfo.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-procruntime.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-prop.h Initial support for GNU_PROPERTY_1_NEEDED 2021-10-07 10:26:08 -07:00
dl-tunables.list x86: Double size of ERMS rep_movsb_threshold in dl-cacheinfo.h 2021-11-06 16:18:08 -05:00
elf-initfini.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
elide.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
float128-abi.h Move __isnanf128 to libc.so 2021-03-30 14:58:19 +05:30
fpu_control.h Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
get-cpuid-feature-leaf.c <sys/platform/x86.h>: Remove the C preprocessor magic 2021-01-21 05:58:17 -08:00
get-isa-level.h <sys/platform/x86.h>: Remove the C preprocessor magic 2021-01-21 05:58:17 -08:00
hp-timing.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
init-arch.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
isa-level.c x86: Set minimum x86-64 level marker [BZ #27318] 2021-03-06 07:49:30 -08:00
jmp_buf-ssp.sym x86: Support shadow stack pointer in setjmp/longjmp 2018-07-14 05:59:53 -07:00
ldbl2mpn.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
ldsodefs.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
libc-start.c Use hidden visibility for early static PIE code 2021-01-21 15:55:01 +00:00
libc-start.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
link_map.h Initial support for GNU_PROPERTY_1_NEEDED 2021-10-07 10:26:08 -07:00
linkmap.h Rename bits/linkmap.h to linkmap.h (bug 14912). 2015-09-04 19:44:27 +00:00
longjmp.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
Makeconfig Add _Float64x function aliases. 2017-11-27 14:16:47 +00:00
Makefile configure: Allow LD to be LLD 13.0.0 or above [BZ #26558] 2021-08-31 20:23:34 -07:00
string_private.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
sysdep.h x86: Modify ENTRY in sysdep.h so that p2align can be specified 2021-10-08 11:30:52 -05:00
tininess.h Use sysdeps/x86/tininess.h for i386 and x86_64 2012-10-30 20:38:31 -07:00
tst-cet-legacy-1.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-cet-legacy-1a.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-cet-legacy-2.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-cet-legacy-2a.c x86/CET: Add tests with legacy non-CET shared objects 2018-07-25 04:47:05 -07:00
tst-cet-legacy-3.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-cet-legacy-4.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-cet-legacy-4a.c x86/CET: Add tests with legacy non-CET shared objects 2018-07-25 04:47:05 -07:00
tst-cet-legacy-4b.c x86/CET: Add tests with legacy non-CET shared objects 2018-07-25 04:47:05 -07:00
tst-cet-legacy-4c.c x86/CET: Add tests with legacy non-CET shared objects 2018-07-25 04:47:05 -07:00
tst-cet-legacy-5.c x86: Properly set usable CET feature bits [BZ #26625] 2021-01-29 03:58:11 -08:00
tst-cet-legacy-5a.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-5b.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-6.c x86: Properly set usable CET feature bits [BZ #26625] 2021-01-29 03:58:11 -08:00
tst-cet-legacy-6a.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-6b.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-7.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-cet-legacy-8.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-cet-legacy-9-static.c x86: Properly set usable CET feature bits [BZ #26625] 2021-01-29 03:58:11 -08:00
tst-cet-legacy-9.c x86: Properly set usable CET feature bits [BZ #26625] 2021-01-29 03:58:11 -08:00
tst-cet-legacy-10-static.c x86: Properly set usable CET feature bits [BZ #26625] 2021-01-29 03:58:11 -08:00
tst-cet-legacy-10.c x86: Install <bits/platform/x86.h> [BZ #27958] 2021-07-23 05:12:51 -07:00
tst-cet-legacy-mod-1.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-cet-legacy-mod-2.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-cet-legacy-mod-4.c x86/CET: Add tests with legacy non-CET shared objects 2018-07-25 04:47:05 -07:00
tst-cet-legacy-mod-5.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-cet-legacy-mod-5a.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-mod-5b.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-mod-5c.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-cet-legacy-mod-6.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-cet-legacy-mod-6a.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-mod-6b.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-mod-6c.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-cet-legacy-mod-6d.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cpu-features-cpuinfo-static.c x86: Add PTWRITE feature detection [BZ #27346] 2021-02-07 08:01:14 -08:00
tst-cpu-features-cpuinfo.c elf: Fix tst-cpu-features-cpuinfo for KVM guests on some AMD systems [BZ #28704] 2021-12-17 20:20:15 +01:00
tst-cpu-features-supports-static.c x86: Add PTWRITE feature detection [BZ #27346] 2021-02-07 08:01:14 -08:00
tst-cpu-features-supports.c x86: Install <bits/platform/x86.h> [BZ #27958] 2021-07-23 05:12:51 -07:00
tst-get-cpu-features-static.c Add _dl_x86_cpu_features to rtld_global 2015-08-13 03:41:22 -07:00
tst-get-cpu-features.c x86: Install <bits/platform/x86.h> [BZ #27958] 2021-07-23 05:12:51 -07:00
tst-ifunc-isa-1-static.c x86: Check ifunc resolver with CPU_FEATURE_USABLE [BZ #27072] 2021-01-21 10:22:26 -08:00
tst-ifunc-isa-1.c x86: Check ifunc resolver with CPU_FEATURE_USABLE [BZ #27072] 2021-01-21 10:22:26 -08:00
tst-ifunc-isa-2-static.c x86: Check ifunc resolver with CPU_FEATURE_USABLE [BZ #27072] 2021-01-21 10:22:26 -08:00
tst-ifunc-isa-2.c x86: Check ifunc resolver with CPU_FEATURE_USABLE [BZ #27072] 2021-01-21 10:22:26 -08:00
tst-ifunc-isa.h x86: Install <bits/platform/x86.h> [BZ #27958] 2021-07-23 05:12:51 -07:00
tst-isa-level-1.c <sys/platform/x86.h>: Remove the C preprocessor magic 2021-01-21 05:58:17 -08:00
tst-isa-level-mod-1-baseline.c x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker [BZ #26717] 2021-01-07 13:10:13 -08:00
tst-isa-level-mod-1-v2.c x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker [BZ #26717] 2021-01-07 13:10:13 -08:00
tst-isa-level-mod-1-v3.c x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker [BZ #26717] 2021-01-07 13:10:13 -08:00
tst-isa-level-mod-1-v4.c x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker [BZ #26717] 2021-01-07 13:10:13 -08:00
tst-isa-level-mod-1.c x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker [BZ #26717] 2021-01-07 13:10:13 -08:00
tst-ldbl-nonnormal-printf.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-memchr-rtm.c x86: Add string/memory function tests in RTM region 2021-03-29 07:40:17 -07:00
tst-memcmp-rtm.c x86: Add string/memory function tests in RTM region 2021-03-29 07:40:17 -07:00
tst-memmove-rtm.c x86: Add string/memory function tests in RTM region 2021-03-29 07:40:17 -07:00
tst-memrchr-rtm.c x86: Add string/memory function tests in RTM region 2021-03-29 07:40:17 -07:00
tst-memset-rtm.c x86: Add string/memory function tests in RTM region 2021-03-29 07:40:17 -07:00
tst-setjmp-cet.c x86: Set header.feature_1 in TCB for always-on CET [BZ #27177] 2021-01-13 05:03:34 -08:00
tst-stack-align.h Properly check stack alignment [BZ #27901] 2021-05-24 07:42:12 -07:00
tst-strchr-rtm.c x86: Add string/memory function tests in RTM region 2021-03-29 07:40:17 -07:00
tst-strcpy-rtm.c x86: Add string/memory function tests in RTM region 2021-03-29 07:40:17 -07:00
tst-string-rtm.h x86: Install <bits/platform/x86.h> [BZ #27958] 2021-07-23 05:12:51 -07:00
tst-strlen-rtm.c x86: Add string/memory function tests in RTM region 2021-03-29 07:40:17 -07:00
tst-strncmp-rtm.c x86: Add string/memory function tests in RTM region 2021-03-29 07:40:17 -07:00
tst-strrchr-rtm.c x86: Add string/memory function tests in RTM region 2021-03-29 07:40:17 -07:00
tst-sysconf-cache-linesize-static.c x86: Handle _SC_LEVEL1_ICACHE_LINESIZE [BZ #27444] 2021-03-15 05:43:26 -07:00
tst-sysconf-cache-linesize.c x86: Handle _SC_LEVEL1_ICACHE_LINESIZE [BZ #27444] 2021-03-15 05:43:26 -07:00
Versions <sys/platform/x86.h>: Remove the C preprocessor magic 2021-01-21 05:58:17 -08:00