glibc/sysdeps/generic
Florian Weimer 0923f74ada Support for multiple versions in versioned_symbol, compat_symbol
This essentially folds compat_symbol_unique functionality into
compat_symbol.

This change eliminates the need for intermediate aliases for defining
multiple symbol versions, for both compat_symbol and versioned_symbol.
Some binutils versions do not suport multiple versions per symbol on
some targets, so aliases are automatically introduced, similar to what
compat_symbol_unique did.  To reduce symbol table sizes, a configure
check is added to avoid these aliases if they are not needed.

The new mechanism works with data symbols as well as function symbols,
due to the way an assembler-level redirect is used.  It is not
compatible with weak symbols for old binutils versions, which is why
the definition of __malloc_initialize_hook had to be changed.  This
is not a loss of functionality because weak symbols do not matter
to dynamic linking.

The placeholder symbol needs repeating in nptl/libpthread-compat.c
now that compat_symbol is used, but that seems more obvious than
introducing yet another macro.

A subtle difference was that compat_symbol_unique made the symbol
global automatically.  compat_symbol does not do this, so static
had to be removed from the definition of
__libpthread_version_placeholder.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2021-03-25 12:33:02 +01:00
..
net Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
netinet Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
nfs Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
sys Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
_G_config.h Post-cleanup 2: minimize _G_config.h. 2018-02-07 10:10:32 -05:00
_itoa.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
a.out.h
abort-instr.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
adaptive_spin_count.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
aio_misc.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
allocalim.h
arch-fd_to_filename.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
asm-syntax.h
atomic-machine.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
c++-types.data
confstr.h
crti.S Introduce <elf-initfini.h> and ELF_INITFINI for all architectures 2020-02-18 15:12:25 +01:00
crtn.S Introduce <elf-initfini.h> and ELF_INITFINI for all architectures 2020-02-18 15:12:25 +01:00
device-nrs.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dirstream.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-auxv.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-cache.h ldconfig/x86: Store ISA level in cache and aux cache 2021-01-13 05:51:17 -08:00
dl-dtprocnum.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-dtv.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-fcntl.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-fileid.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-fptr.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-hash.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-irel.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-librecon.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-lookupcfg.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-machine.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-mman.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-osinfo.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-procinfo.c
dl-procinfo.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-procruntime.c ld.so: Add architecture specific fields 2017-11-13 08:02:52 -08:00
dl-prop.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-sysdep.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-tls.h
dl-unistd.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-vdso-setup.c elf: Move vDSO setup to rtld (BZ#24967) 2020-01-03 11:22:07 -03:00
dl-vdso-setup.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dl-vdso.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dwarf2.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
elf_machine_sym_no_match.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
elf-initfini.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
elf-read-prop.h ldconfig/x86: Store ISA level in cache and aux cache 2021-01-13 05:51:17 -08:00
elide.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
eloop-threshold.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
entry.h
errqueue.h
exit-thread.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
fd_to_filename.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
fenv_private.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
fips-private.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
fix-fp-int-compare-invalid.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
fix-fp-int-convert-overflow.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
fix-int-fp-convert-zero.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
float128-abi.h Move some float128 symbol version definitions. 2017-10-16 22:04:42 +00:00
fork.h posix: Consolidate register-atfork 2021-03-12 10:19:22 -03:00
fpu_control.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
framestate.c __frame_state_for: Use <unwind-link.h> for unwinder access 2021-03-01 15:59:36 +01:00
gcc-compat.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
gccframe.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
get-rounding-mode.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
gmp-mparam.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
hp-timing-common.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
hp-timing.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
ifreq.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
ifunc-init.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
ifunc-sel.h
internal-signals.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
intr-msg.h
ld.abilist
ldbl-classify-compat.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
ldconfig.h ldconfig/x86: Store ISA level in cache and aux cache 2021-01-13 05:51:17 -08:00
ldsodefs.h Reduce the statically linked startup code [BZ #23323] 2021-02-25 12:13:02 +01:00
libanl.abilist
libBrokenLocale.abilist
libc-lock.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
libc-mmap.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
libc-mtag.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
libc-start.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
libc-symver.h Support for multiple versions in versioned_symbol, compat_symbol 2021-03-25 12:33:02 +01:00
libc-tsd.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
libc.abilist Add the __libc_single_threaded variable 2020-07-06 11:15:58 +02:00
libcrypt.abilist
libdl.abilist
libm-alias-double.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
libm-alias-float128.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
libm-alias-float.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
libm-alias-ldouble.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
libm-test-ulps Replace gen-libm-test.pl with gen-libm-test.py. 2018-08-09 15:34:12 +00:00
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 ld.so: Add architecture specific fields 2017-11-13 08:02:52 -08:00
linkmap.h
local-setxid.h
localplt.data ld.so: Do not export free/calloc/malloc/realloc functions [BZ #25486] 2020-02-15 11:01:23 +01:00
machine-gmon.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
machine-lock.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
machine-sp.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
Makefile Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
malloc-alignment.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
malloc-machine.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
malloc-sysdep.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math_ldbl_opt.h Use PRINTF_LDBL_IS_DBL instead of __ldbl_is_dbl. 2018-12-05 18:15:43 -02:00
math_ldbl.h
math_private_calls.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math_private.h math: Remove mpa files [BZ #15267] 2021-03-11 14:26:36 +00:00
math-barriers.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math-nan-payload-double.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math-nan-payload-float.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math-narrow-alias-float128.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math-tests-arch.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math-tests-exceptions.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math-tests-rounding.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math-tests-snan-cast.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math-tests-snan-payload.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math-tests-snan.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math-tests-trap-force.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math-tests-trap.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math-tests.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math-type-macros-double.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math-type-macros-float128.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math-type-macros-float.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math-type-macros-ldouble.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math-type-macros.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
math-use-builtins-ceil.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-copysign.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-floor.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-fma.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-nearbyint.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-rint.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-round.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-sqrt.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-trunc.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
memcopy.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
memusage.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
mmap_info.h posix: Fix large mmap64 offset for mips64n32 (BZ#24699) 2019-07-10 16:52:50 -03:00
nan-high-order-bit.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
not-cancel.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
not-errno.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
nscd-types.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pagecopy.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
paths.h
profil-counter.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pty-private.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
register-dump.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
rtld-lowlevel.h
safe-fatal.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
setjmpP.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
sigcontextinfo.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
siglist-compat.c signal: Move sys_siglist to a compat symbol 2020-07-07 14:10:58 -03:00
siglist-compat.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
siglist.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
sigset-cvt-mask.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
sigsetops.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
single-thread.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
stackguard-macros.h
stackinfo.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
stap-probe-machine.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
startup.h Use <startup.h> in __libc_init_secure 2021-01-19 09:55:47 -08:00
stdio-lock.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
string_private.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
struct_stat_time64.h linux: Add {f}stat{at} y2038 support 2020-10-09 17:02:07 -03:00
symbol-hacks.h Break more lines before not after operators. 2019-02-25 13:19:19 +00:00
sysdep-cancel.h nptl: Remove tst-cancel-wrappers test and related macros 2019-01-03 18:38:08 -02:00
sysdep.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
thread_state.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
time-clockid.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tininess.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tls-internal-struct.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tls-internal.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tls-internal.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tls-macros.h
tls-setup.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tls.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-audit.h
tst-stack-align.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
unsecvars.h
unwind-arch.h Implement <unwind-link.h> for dynamically loading the libgcc_s unwinder 2021-03-01 15:58:01 +01:00
unwind-dw2-fde-glibc.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
unwind-dw2-fde.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
unwind-dw2-fde.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
unwind-dw2.c Legacy unwinder: Remove definition of _Unwind_GetCFA 2021-03-16 15:33:09 +01:00
unwind-link.h Implement <unwind-link.h> for dynamically loading the libgcc_s unwinder 2021-03-01 15:58:01 +01:00
unwind-pe.c
unwind-pe.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
unwind-resume.c Implement _Unwind_Resume in libc on top of <unwind-link.h> 2021-03-01 16:00:03 +01:00
unwind-resume.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
unwind.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
utmp-equal.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xstatver.h Remove mknod wrapper functions, move them to symbols 2020-10-09 17:02:06 -03:00