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
netinet
nfs
sys
_G_config.h
_itoa.h
a.out.h
abort-instr.h
adaptive_spin_count.h
aio_misc.h
allocalim.h
arch-fd_to_filename.h
asm-syntax.h
atomic-machine.h
c++-types.data
confstr.h
crti.S
crtn.S
device-nrs.h
dirstream.h
dl-audit-check.h
dl-auxv.h
dl-cache.h elf: Remove ldconfig kernel version check 2022-05-16 15:03:49 -03:00
dl-debug.h
dl-dtprocnum.h
dl-dtv.h
dl-execve.h
dl-fcntl.h
dl-fileid.h
dl-fixup-attribute.h
dl-fptr.h
dl-hash.h
dl-hwcap-check.h
dl-irel.h
dl-isa-level.h
dl-lookupcfg.h
dl-machine-rel.h
dl-machine.h
dl-minimal-malloc.h
dl-mman.h
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
dl-procinfo.c
dl-procinfo.h
dl-procruntime.c
dl-prop.h
dl-protected.h elf: Refine direct extern access diagnostics to protected symbol 2022-06-14 13:07:27 -07:00
dl-r_debug.h
dl-relocate-ld.h
dl-sysdep.h
dl-tls.h
dl-unistd.h
dl-vdso-setup.c
dl-vdso-setup.h
dl-vdso.h
dwarf2.h
elf_machine_sym_no_match.h
elf-initfini.h
elf-read-prop.h
elide.h
eloop-threshold.h
entry.h
errqueue.h
fast-jitter.h
fd_to_filename.h
features-time64.h
fenv_private.h
fips-private.h
fix-fp-int-compare-invalid.h
fix-fp-int-convert-overflow.h
fix-int-fp-convert-zero.h
float128-abi.h
fork.h
fpu_control.h
framestate.c
gcc-compat.h
gccframe.h
get-rounding-mode.h
gmp-mparam.h
hp-timing-common.h
hp-timing.h
ifreq.h
ifunc-init.h
ifunc-sel.h
internal-signals.h
intr-msg.h
ld.abilist
ldbl-classify-compat.h
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
libc-lock.h
libc-mmap.h
libc-mtag.h
libc-start.h
libc-symver.h
libc-tsd.h
libc.abilist linux: Add pidfd_getfd 2022-05-17 10:33:07 -03:00
libcrypt.abilist
libdl.abilist
libm-alias-double.h
libm-alias-float128.h
libm-alias-float.h
libm-alias-ldouble.h
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
linkmap.h
local-setxid.h
localplt.data
machine-gmon.h
machine-lock.h
machine-sp.h
Makefile
malloc-alignment.h
malloc-hugepages.c
malloc-hugepages.h
malloc-machine.h
malloc-size.h
malloc-sysdep.h
math_ldbl_opt.h
math_ldbl.h
math_private_calls.h
math_private.h
math-barriers.h
math-nan-payload-double.h
math-nan-payload-float.h
math-narrow-alias-float128.h
math-narrow-alias.h
math-tests-arch.h
math-tests-exceptions.h
math-tests-rounding.h
math-tests-snan-cast.h
math-tests-snan-payload.h
math-tests-snan.h
math-tests-trap-force.h
math-tests-trap.h
math-tests.h
math-type-macros-double.h
math-type-macros-float128.h
math-type-macros-float.h
math-type-macros-ldouble.h
math-type-macros.h
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-use-builtins-fmin.h
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
mmap_info.h
nan-high-order-bit.h
not-cancel.h
not-errno.h
nscd-types.h
pagecopy.h
paths.h
profil-counter.h
pty-private.h
rtld_static_init.h
rtld-lowlevel.h
safe-fatal.h
set-hooks-arch.h
setjmpP.h
sigcontextinfo.h
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
sigset-cvt-mask.h
sigsetops.h
single-thread.h
spawn_int_def.h
stackguard-macros.h
stackinfo.h
stap-probe-machine.h
startup.h
stdio-lock.h
string_private.h
struct_stat_time64.h
symbol-hacks.h
sysdep-cancel.h
sysdep.h
thread_state.h
time64-compat.h
time-clockid.h
tininess.h
tls-internal-struct.h
tls-internal.c
tls-internal.h
tls-setup.h
tls.h
tst-audit.h
tst-file-align.h
tst-stack-align.h
unsecvars.h
unwind-arch.h
unwind-dw2-fde-glibc.c
unwind-dw2-fde.c
unwind-dw2-fde.h
unwind-dw2.c
unwind-link.h
unwind-pe.c
unwind-pe.h
unwind-resume.c
unwind-resume.h
unwind.h
utmp-equal.h
xstatver.h