diff options
author | Ulrich Drepper <drepper@redhat.com> | 2009-07-09 23:52:22 -0700 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2009-07-09 23:52:22 -0700 |
commit | 415ac3df9b10ae426d4f71f9d48003f6a3c7bd8d (patch) | |
tree | ffdd1aed425688539db80ff7b9daf6f6ddbcbfff /configure.in | |
parent | Define STB_GNU_UNIQUE. (diff) | |
download | glibc-415ac3df9b10ae426d4f71f9d48003f6a3c7bd8d.tar.gz glibc-415ac3df9b10ae426d4f71f9d48003f6a3c7bd8d.tar.bz2 glibc-415ac3df9b10ae426d4f71f9d48003f6a3c7bd8d.zip |
Implement STB_GNU_UNIQUE handling.
Some symbols have to be identified process-wide by their name. This is
particularly important for some C++ features (e.g., class local static data
and static variables in inline functions). This cannot completely be
implemented with ELF functionality so far. The STB_GNU_UNIQUE binding
helps by ensuring the dynamic linker will always use the same definition for
all symbols with the same name and this binding.
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/configure.in b/configure.in index 216cdc9d07..61c87418e6 100644 --- a/configure.in +++ b/configure.in @@ -1211,6 +1211,23 @@ if test "x$libc_cv_asm_type_prefix" != xno; then AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix}) fi +AC_CACHE_CHECK(for assembler gnu_unique_object symbol type, + libc_cv_asm_unique_object, [dnl +cat > conftest.s <<EOF +${libc_cv_dot_text} +_sym: +.type _sym, ${libc_cv_asm_type_prefix}gnu_unique_object +EOF +if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then + libc_cv_asm_unique_object=yes +else + libc_cv_asm_unique_object=no +fi +rm -f conftest*]) +if test $libc_cv_asm_unique_object = yes; then + AC_DEFINE(HAVE_ASM_UNIQUE_OBJECT) +fi + # For the multi-arch option we need support in the assembler. if test "$multi_arch" = yes; then if test "x$libc_cv_asm_type_prefix" != xno; then |