glibc/sysdeps/x86
H.J. Lu 848746e88e elf: Add ELF_DYNAMIC_AFTER_RELOC to rewrite PLT
Add ELF_DYNAMIC_AFTER_RELOC to allow target specific processing after
relocation.

For x86-64, add

 #define DT_X86_64_PLT     (DT_LOPROC + 0)
 #define DT_X86_64_PLTSZ   (DT_LOPROC + 1)
 #define DT_X86_64_PLTENT  (DT_LOPROC + 3)

1. DT_X86_64_PLT: The address of the procedure linkage table.
2. DT_X86_64_PLTSZ: The total size, in bytes, of the procedure linkage
table.
3. DT_X86_64_PLTENT: The size, in bytes, of a procedure linkage table
entry.

With the r_addend field of the R_X86_64_JUMP_SLOT relocation set to the
memory offset of the indirect branch instruction.

Define ELF_DYNAMIC_AFTER_RELOC for x86-64 to rewrite the PLT section
with direct branch after relocation when the lazy binding is disabled.

PLT rewrite is disabled by default since SELinux may disallow modifying
code pages and ld.so can't detect it in all cases.  Use

$ export GLIBC_TUNABLES=glibc.cpu.plt_rewrite=1

to enable PLT rewrite with 32-bit direct jump at run-time or

$ export GLIBC_TUNABLES=glibc.cpu.plt_rewrite=2

to enable PLT rewrite with 32-bit direct jump and on APX processors with
64-bit absolute jump at run-time.

Reviewed-by: Noah Goldstein <goldstein.w.n@gmail.com>
2024-01-05 05:49:49 -08:00
..
bits Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
fpu Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
htl Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
include Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
nptl Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
sys/platform Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
__longjmp_cancel.S x86-64/cet: Check the restore token in longjmp 2024-01-04 13:38:26 -08:00
abi-note.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
atomic-machine.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
cacheinfo.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
cacheinfo.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
cet-control.h elf: Add ELF_DYNAMIC_AFTER_RELOC to rewrite PLT 2024-01-05 05:49:49 -08:00
check-cet.awk Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
configure i386: Ignore --enable-cet 2024-01-04 06:08:55 -08:00
configure.ac i386: Ignore --enable-cet 2024-01-04 06:08:55 -08:00
cpu-features-offsets.sym x86/cet: Enable shadow stack during startup 2024-01-01 05:22:48 -08:00
cpu-features.c elf: Add ELF_DYNAMIC_AFTER_RELOC to rewrite PLT 2024-01-05 05:49:49 -08:00
cpu-tunables.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-cacheinfo.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-cet.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-diagnostics-cpu.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-get-cpu-features.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-hwcap2.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-hwcap.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-isa-level.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-lookupcfg.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-minsigstacksize.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-new-hash.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-procinfo.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-procinfo.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-procruntime.c elf: Add ELF_DYNAMIC_AFTER_RELOC to rewrite PLT 2024-01-05 05:49:49 -08:00
dl-prop.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-tunables.list elf: Add ELF_DYNAMIC_AFTER_RELOC to rewrite PLT 2024-01-05 05:49:49 -08:00
elf-initfini.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
elide.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
float128-abi.h Move __isnanf128 to libc.so 2021-03-30 14:58:19 +05:30
fpu_control.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
get-cpuid-feature-leaf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
get-isa-level.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
hp-timing.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
init-arch.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
isa-ifunc-macros.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
isa-level.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
isa-level.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -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 2024-01-01 10:53:40 -08:00
ldsodefs.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
libc-start.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
libc-start.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
link_map.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08: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 2024-01-01 10:53:40 -08:00
Makeconfig Add _Float64x function aliases. 2017-11-27 14:16:47 +00:00
Makefile x86/cet: Add -fcf-protection=none before -fcf-protection=branch 2024-01-01 15:53:52 -08:00
readelflib.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
sysdep.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08: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 2024-01-01 10:53:40 -08:00
tst-cet-legacy-1a.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-cet-legacy-2.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -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 2024-01-01 10:53:40 -08:00
tst-cet-legacy-4.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -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 Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -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 Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -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 2024-01-01 10:53:40 -08:00
tst-cet-legacy-8.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -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 Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -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 Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-cet-legacy-10a-static.c x86/cet: Check CPU_FEATURE_ACTIVE when CET is disabled 2023-12-19 06:57:32 -08:00
tst-cet-legacy-10a.c x86/cet: Check CPU_FEATURE_ACTIVE when CET is disabled 2023-12-19 06:57:32 -08:00
tst-cet-legacy-mod-1.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-cet-legacy-mod-2.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -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 2024-01-01 10:53:40 -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 2024-01-01 10:53:40 -08:00
tst-cet-legacy-mod-6.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -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 2024-01-01 10:53:40 -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 Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08: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 Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08: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 Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-hwcap-tunables.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08: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 Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -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 Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-ifunc-isa.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-isa-level-1.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -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 Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-ldbl-nonnormal-printf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-memchr-rtm.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-memcmp-rtm.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-memmove-rtm.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-memrchr-rtm.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-memset-rtm.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08: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-shstk-legacy-1-extra.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-shstk-legacy-1a-static.c x86/cet: Check legacy shadow stack applications 2023-12-19 06:57:27 -08:00
tst-shstk-legacy-1a.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-shstk-legacy-1b-static.c x86/cet: Check legacy shadow stack applications 2023-12-19 06:57:27 -08:00
tst-shstk-legacy-1b.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-shstk-legacy-1c-static.c x86/cet: Add tests for GLIBC_TUNABLES=glibc.cpu.hwcaps=-SHSTK 2023-12-19 06:57:39 -08:00
tst-shstk-legacy-1c.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-shstk-legacy-1d-static.c x86/cet: Check legacy shadow stack code in .init_array section 2023-12-19 06:57:47 -08:00
tst-shstk-legacy-1d.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-shstk-legacy-1e-static.c x86/cet: Check legacy shadow stack code in .init_array section 2023-12-19 06:57:47 -08:00
tst-shstk-legacy-1e-static.sh Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-shstk-legacy-1e.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-shstk-legacy-1e.sh Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-shstk-legacy-1f.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-shstk-legacy-1g.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-shstk-legacy-1g.sh Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-shstk-legacy-mod-1.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-stack-align.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-strcasecmp-rtm.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-strchr-rtm.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-strcmp-rtm.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-strcpy-rtm.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-string-rtm.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-strlen-rtm.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-strncasecmp-rtm.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-strncmp-rtm.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-strrchr-rtm.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08: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 Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-wcscmp-rtm.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-wcsncmp-rtm.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
Versions <sys/platform/x86.h>: Remove the C preprocessor magic 2021-01-21 05:58:17 -08:00