glibc/sysdeps/generic
Fangrui Song de38b2a343 elf: Remove ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA
If an executable has copy relocations for extern protected data, that
can only work if the library containing the definition is built with
assumptions (a) the compiler emits GOT-generating relocations (b) the
linker produces R_*_GLOB_DAT instead of R_*_RELATIVE.  Otherwise the
library uses its own definition directly and the executable accesses a
stale copy.  Note: the GOT relocations defeat the purpose of protected
visibility as an optimization, but allow rtld to make the executable and
library use the same copy when copy relocations are present, but it
turns out this never worked perfectly.

ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA has strange semantics when both
a.so and b.so define protected var and the executable copy relocates
var: b.so accesses its own copy even with GLOB_DAT.  The behavior change
is from commit 62da1e3b00 (x86) and then
copied to nios2 (ae5eae7cfc) and arc
(0e7d930c4c).

Without ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA, b.so accesses the copy
relocated data like a.so.

There is now a warning for copy relocation on protected symbol since
commit 7374c02b68.  It's extremely
unlikely anyone relies on the ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA
behavior, so let's remove it: this removes a check in the symbol lookup
code.
2022-06-15 11:29:55 -07:00
..
net Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
netinet Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nfs Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
sys ttydefaults.h: Fix CSTATUS to control-t 2022-01-07 00:23:05 +01:00
_G_config.h
_itoa.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
a.out.h
abort-instr.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
adaptive_spin_count.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
aio_misc.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
allocalim.h
arch-fd_to_filename.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
asm-syntax.h
atomic-machine.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
c++-types.data
confstr.h
crti.S
crtn.S
device-nrs.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dirstream.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-audit-check.h elf: Fix runtime linker auditing on aarch64 (BZ #26643) 2022-02-01 14:49:46 -03:00
dl-auxv.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-cache.h elf: Remove ldconfig kernel version check 2022-05-16 15:03:49 -03:00
dl-debug.h elf: Add <dl-debug.h> 2022-01-03 05:16:03 -08:00
dl-dtprocnum.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-dtv.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-execve.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-fcntl.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-fileid.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-fixup-attribute.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-fptr.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-hash.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-hwcap-check.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-irel.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-isa-level.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-lookupcfg.h elf: Issue la_symbind for bind-now (BZ #23734) 2022-02-01 14:49:46 -03:00
dl-machine-rel.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-machine.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-minimal-malloc.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-mman.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-new-hash.h elf: Optimize _dl_new_hash in dl-new-hash.h 2022-05-23 10:38:40 -05:00
dl-osinfo.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-procinfo.c
dl-procinfo.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-procruntime.c
dl-prop.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-protected.h elf: Refine direct extern access diagnostics to protected symbol 2022-06-14 13:07:27 -07:00
dl-r_debug.h elf: Add <dl-r_debug.h> 2022-01-31 07:05:48 -08:00
dl-relocate-ld.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-sysdep.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-tls.h
dl-unistd.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-vdso-setup.c
dl-vdso-setup.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-vdso.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dwarf2.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
elf_machine_sym_no_match.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
elf-initfini.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
elf-read-prop.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
elide.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
eloop-threshold.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
entry.h
errqueue.h
fast-jitter.h sysdeps: Add 'get_fast_jitter' interace in fast-jitter.h 2022-04-27 17:17:43 -05:00
fd_to_filename.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
features-time64.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fenv_private.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fips-private.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fix-fp-int-compare-invalid.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fix-fp-int-convert-overflow.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fix-int-fp-convert-zero.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
float128-abi.h
fork.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fpu_control.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
framestate.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
gcc-compat.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
gccframe.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
get-rounding-mode.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
gmp-mparam.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
hp-timing-common.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
hp-timing.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
ifreq.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
ifunc-init.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
ifunc-sel.h
internal-signals.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
intr-msg.h
ld.abilist
ldbl-classify-compat.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
ldconfig.h elf: Remove ldconfig kernel version check 2022-05-16 15:03:49 -03:00
ldsodefs.h elf: Remove ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA 2022-06-15 11:29:55 -07:00
libanl.abilist
libBrokenLocale.abilist
libc_malloc_debug.abilist
libc_start_call_main.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
libc-lock.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
libc-mmap.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
libc-mtag.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
libc-start.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
libc-symver.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
libc-tsd.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
libc.abilist linux: Add pidfd_getfd 2022-05-17 10:33:07 -03:00
libcrypt.abilist
libdl.abilist
libm-alias-double.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
libm-alias-float128.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
libm-alias-float.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
libm-alias-ldouble.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
libm-test-ulps
libm-test-ulps-name
libm.abilist
libnsl.abilist
libnss_compat.abilist
libnss_db.abilist
libnss_dns.abilist
libnss_files.abilist
libnss_hesiod.abilist
libnss_nis.abilist
libnss_nisplus.abilist
libpthread.abilist
libresolv.abilist
librt.abilist
libutil.abilist
link_map.h Initial support for GNU_PROPERTY_1_NEEDED 2021-10-07 10:26:08 -07:00
linkmap.h
local-setxid.h
localplt.data
machine-gmon.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
machine-lock.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
machine-sp.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
Makefile Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
malloc-alignment.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
malloc-hugepages.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
malloc-hugepages.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
malloc-machine.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
malloc-size.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
malloc-sysdep.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math_ldbl_opt.h
math_ldbl.h
math_private_calls.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math_private.h
math-barriers.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math-nan-payload-double.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math-nan-payload-float.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math-narrow-alias-float128.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math-narrow-alias.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math-tests-arch.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math-tests-exceptions.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math-tests-rounding.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math-tests-snan-cast.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math-tests-snan-payload.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math-tests-snan.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math-tests-trap-force.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math-tests-trap.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math-tests.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math-type-macros-double.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math-type-macros-float128.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math-type-macros-float.h math: Fix float conversion regressions with gcc-12 [BZ #28713] 2022-01-10 14:27:17 +00:00
math-type-macros-ldouble.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math-type-macros.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math-use-builtins-ceil.h
math-use-builtins-copysign.h
math-use-builtins-fabs.h math: Add math-use-builtins-fabs (BZ#29027) 2022-05-23 17:49:18 -03:00
math-use-builtins-floor.h
math-use-builtins-fma.h
math-use-builtins-fmax.h math: Add math-use-builtinds-fmax.h 2021-12-13 09:08:07 -03:00
math-use-builtins-fmin.h math: Add math-use-builtinds-fmin.h 2021-12-13 10:08:43 -03:00
math-use-builtins-nearbyint.h
math-use-builtins-rint.h
math-use-builtins-round.h
math-use-builtins-roundeven.h
math-use-builtins-sqrt.h
math-use-builtins-trunc.h
math-use-builtins.h math: Add math-use-builtins-fabs (BZ#29027) 2022-05-23 17:49:18 -03:00
memcopy.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
mmap_info.h
nan-high-order-bit.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
not-cancel.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
not-errno.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nscd-types.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
pagecopy.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
paths.h
profil-counter.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
pty-private.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
rtld_static_init.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
rtld-lowlevel.h
safe-fatal.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
set-hooks-arch.h SET_RELHOOK: merge i386 and x86_64, and move to sysdeps/mach/hurd/x86 2022-02-01 20:08:25 +00:00
setjmpP.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
sigcontextinfo.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
siglist-compat-def.h stdio: Remove the usage of $(fno-unit-at-a-time) for siglist.c 2022-05-13 10:54:41 -03:00
siglist.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
sigset-cvt-mask.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
sigsetops.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
single-thread.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
spawn_int_def.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
stackguard-macros.h
stackinfo.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
stap-probe-machine.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
startup.h elf: Remove __libc_init_secure 2022-04-19 15:52:27 -07:00
stdio-lock.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
string_private.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
struct_stat_time64.h
symbol-hacks.h Disable symbol hack in libc_nonshared.a 2021-09-27 07:46:25 -07:00
sysdep-cancel.h
sysdep.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
thread_state.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
time64-compat.h
time-clockid.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tininess.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tls-internal-struct.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tls-internal.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tls-internal.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tls-setup.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tls.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-audit.h
tst-file-align.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-stack-align.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
unsecvars.h elf: Remove LD_USE_LOAD_BIAS 2022-02-10 09:18:15 -03:00
unwind-arch.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
unwind-dw2-fde-glibc.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
unwind-dw2-fde.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
unwind-dw2-fde.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
unwind-dw2.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
unwind-link.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
unwind-pe.c
unwind-pe.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
unwind-resume.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
unwind-resume.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
unwind.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
utmp-equal.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
xstatver.h