mirror of
https://sourceware.org/git/glibc.git
synced 2025-11-02 09:33:31 +03:00
On i386, programs and shared libraries with __thread usage may fail silently at run-time against glibc without the TLS run-time fix for: https://sourceware.org/bugzilla/show_bug.cgi?id=32996 Add GLIBC_ABI_GNU_TLS version to indicate that glibc has the working GNU TLS run-time. Linker can add the GLIBC_ABI_GNU_TLS version to binaries which depend on the working TLS run-time so that such programs and shared libraries will fail to load and run at run-time against libc.so without the GLIBC_ABI_GNU_TLS version, instead of fail silently at random. This fixes BZ #33221. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Sam James <sam@gentoo.org>
44 lines
1.3 KiB
Plaintext
44 lines
1.3 KiB
Plaintext
ld {
|
|
GLIBC_2.3 {
|
|
# The alternative i386 runtime interface to TLS.
|
|
___tls_get_addr;
|
|
}
|
|
}
|
|
libc {
|
|
GLIBC_2.0 {
|
|
# Functions from libgcc.
|
|
__divdi3; __moddi3; __udivdi3; __umoddi3;
|
|
}
|
|
GLIBC_2.1 {
|
|
# global variable
|
|
_fp_hw;
|
|
}
|
|
GLIBC_2.1.1 {
|
|
# extern inline functions used by <bits/string.h>
|
|
__memcpy_c; __memset_cc; __memset_cg; __memset_gg;
|
|
__memcpy_by2; __memcpy_by4; __memcpy_g; __mempcpy_by2; __mempcpy_by4;
|
|
__mempcpy_byn; __memset_ccn_by2; __memset_ccn_by4; __memset_gcn_by2;
|
|
__memset_gcn_by4; __stpcpy_g; __strcat_c; __strcat_g; __strchr_c;
|
|
__strchr_g; __strchrnul_c; __strchrnul_g; __strcmp_gg; __strcpy_g;
|
|
__strcspn_c1; __strcspn_cg; __strcspn_g; __strlen_g; __strncat_g;
|
|
__strncmp_g; __strncpy_by2; __strncpy_by4; __strncpy_byn; __strncpy_gg;
|
|
__strpbrk_cg; __strpbrk_g; __strrchr_c; __strrchr_g; __strspn_c1;
|
|
__strspn_cg; __strspn_g; __strstr_cg; __strstr_g;
|
|
}
|
|
GLIBC_2.13 {
|
|
__fentry__;
|
|
}
|
|
GLIBC_ABI_GNU_TLS {
|
|
# This symbol is used only for empty version map and will be removed
|
|
# by scripts/versions.awk.
|
|
__placeholder_only_for_empty_version_map;
|
|
}
|
|
}
|
|
libm {
|
|
GLIBC_2.1 {
|
|
# A generic bug got this omitted from other configurations' version
|
|
# sets, but we always had it.
|
|
exp2l;
|
|
}
|
|
}
|