powerpc: Remove HAVE_ASM_GLOBAL_DOT_NAME define
authorAdhemerval Zanella <azanella@linux.vnet.ibm.com>
Tue, 3 Feb 2015 12:41:25 +0000 (07:41 -0500)
committerAdhemerval Zanella <azanella@linux.vnet.ibm.com>
Wed, 11 Mar 2015 13:01:05 +0000 (09:01 -0400)
With AIX port deprecated there is no need to check/define
HAVE_ASM_GLOBAL_DOT_NAME anymore since the current minimum binutils
supported (2.22) does not emit global symbol with dot.

This patch removes all the HAVE_ASM_GLOBAL_DOT_NAME definition and
checks for powerpc64 port.

ChangeLog
config.h.in
include/libc-symbols.h
nptl_db/db-symbols.h
nptl_db/td_symbol_list.c
sysdeps/powerpc/powerpc64/configure
sysdeps/powerpc/powerpc64/configure.ac
sysdeps/powerpc/powerpc64/sysdep.h
sysdeps/powerpc/powerpc64/tls-macros.h
sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h

index 138226e..10410dc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,30 @@
+2015-03-11  Adhemerval Zanellla  <azanella@linux.vnet.ibm.com>
+
+       * config.h.in [HAVE_ASM_GLOBAL_DOT_NAME]: Remove define.
+       * include/libc-symbols.h [HAVE_ASM_GLOBAL_DOT_NAME] (strong_alias):
+       Remove define.
+       [HAVE_ASM_GLOBAL_DOT_NAME] (strong_data_alias): Likewise.
+       [HAVE_ASM_GLOBAL_DOT_NAME] (weak_alias): Likewise.
+       [HAVE_ASM_GLOBAL_DOT_NAME] (_symbol_version): Likewise.
+       [HAVE_ASM_GLOBAL_DOT_NAME] (_default_symbol_version): Likewise.
+       [HAVE_ASM_GLOBAL_DOT_NAME] (HIDDEN_JUMPTARGET): Likewise.
+       * nptl_db/db-symbols.h [HAVE_ASM_GLOBAL_DOT_NAME] (DOT): Remove
+       define.
+       * nptl_db/td_symbol_list.c (td_lookup): Remove
+       HAVE_ASM_GLOBAL_DOT_NAME code.
+       * sysdeps/powerpc/powerpc64/configure.ac: Remove
+       HAVE_ASM_GLOBAL_DOT_NAME check.
+       * sysdeps/powerpc/powerpc64/configure: Regenerate.
+       * sysdeps/powerpc/powerpc64/sysdep.h [HAVE_ASM_GLOBAL_DOT_NAME]
+       (DOT_LABEL): Remove define.
+       [HAVE_ASM_GLOBAL_DOT_NAME] (BODY_LABEL): Likewise.
+       [HAVE_ASM_GLOBAL_DOT_NAME] (ENTRY_2): Likewise.
+       [HAVE_ASM_GLOBAL_DOT_NAME] (END_2): Likewise.
+       * sysdeps/powerpc/powerpc64/tls-macros.h [HAVE_ASM_GLOBAL_DOT_NAME]
+       (__TLS_GET_ADDR): Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
+       [HAVE_ASM_GLOBAL_DOT_NAME] (DASHDASHPFX): Likewise.
+
 2015-03-11  Carlos O'Donell  <carlos@redhat.com>
 
        [BZ #18111]
index 695ca35..a1ae478 100644 (file)
@@ -37,9 +37,6 @@
 /* Define if the assembler supports the gnu_unique_object symbol type.  */
 #undef HAVE_ASM_UNIQUE_OBJECT
 
-/* Define a symbol_name as a global .symbol_name for ld.  */
-#undef HAVE_ASM_GLOBAL_DOT_NAME
-
 /* On powerpc64, use overlapping .opd entries.  */
 #undef  USE_PPC64_OVERLAPPING_OPD
 
index 2da0ab4..ca3fe00 100644 (file)
 # define ASM_LINE_SEP ;
 #endif
 
-#ifdef HAVE_ASM_GLOBAL_DOT_NAME
-# ifndef C_SYMBOL_DOT_NAME
-#  if defined __GNUC__ && defined __GNUC_MINOR__ \
-      && (__GNUC__ << 16) + __GNUC_MINOR__ >= (3 << 16) + 1
-#   define C_SYMBOL_DOT_NAME(name) .name
-#  else
-#   define C_SYMBOL_DOT_NAME(name) .##name
-#  endif
-# endif
-#endif
-
 #ifndef __ASSEMBLER__
 /* GCC understands weak symbols and aliases; use its interface where
    possible, instead of embedded assembly language.  */
 #else /* __ASSEMBLER__ */
 
 # ifdef HAVE_ASM_SET_DIRECTIVE
-#  ifdef HAVE_ASM_GLOBAL_DOT_NAME
-#   define strong_alias(original, alias)                               \
-  .globl C_SYMBOL_NAME (alias) ASM_LINE_SEP            \
-  .set C_SYMBOL_NAME (alias),C_SYMBOL_NAME (original) ASM_LINE_SEP     \
-  .globl C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP                \
-  .set C_SYMBOL_DOT_NAME (alias),C_SYMBOL_DOT_NAME (original)
-#   define strong_data_alias(original, alias)                          \
-  .globl C_SYMBOL_NAME (alias) ASM_LINE_SEP            \
-  .set C_SYMBOL_NAME (alias),C_SYMBOL_NAME (original)
-#  else
-#   define strong_alias(original, alias)                               \
+#  define strong_alias(original, alias)                                \
   .globl C_SYMBOL_NAME (alias) ASM_LINE_SEP            \
   .set C_SYMBOL_NAME (alias),C_SYMBOL_NAME (original)
-#   define strong_data_alias(original, alias) strong_alias(original, alias)
-#  endif
+#  define strong_data_alias(original, alias) strong_alias(original, alias)
 # else
-#  ifdef HAVE_ASM_GLOBAL_DOT_NAME
-#   define strong_alias(original, alias)                               \
-  .globl C_SYMBOL_NAME (alias) ASM_LINE_SEP            \
-  C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original) ASM_LINE_SEP                \
-  .globl C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP                \
-  C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
-#   define strong_data_alias(original, alias)                          \
+#  define strong_alias(original, alias)                                \
   .globl C_SYMBOL_NAME (alias) ASM_LINE_SEP            \
   C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
-#  else
-#   define strong_alias(original, alias)                               \
-  .globl C_SYMBOL_NAME (alias) ASM_LINE_SEP            \
-  C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
-#   define strong_data_alias(original, alias) strong_alias(original, alias)
-#  endif
+#  define strong_data_alias(original, alias) strong_alias(original, alias)
 # endif
 
 # ifdef HAVE_ASM_WEAKEXT_DIRECTIVE
-#  ifdef HAVE_ASM_GLOBAL_DOT_NAME
-#   define weak_alias(original, alias)                                 \
-  .weakext C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original) ASM_LINE_SEP \
-  .weakext C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
-#  else
-#   define weak_alias(original, alias)                                 \
+#  define weak_alias(original, alias)                                  \
   .weakext C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
-#  endif
 #  define weak_extern(symbol)                                          \
   .weakext C_SYMBOL_NAME (symbol)
 
 # else /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */
 
-#  ifdef HAVE_ASM_GLOBAL_DOT_NAME
-#   define weak_alias(original, alias)                                 \
-  .weak C_SYMBOL_NAME (alias) ASM_LINE_SEP                             \
-  C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original) ASM_LINE_SEP                \
-  .weak C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP                         \
-  C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
-#  else
-#   define weak_alias(original, alias)                                 \
+#  define weak_alias(original, alias)                                  \
   .weak C_SYMBOL_NAME (alias) ASM_LINE_SEP                             \
   C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
-#  endif
 
 #  define weak_extern(symbol)                                          \
   .weak C_SYMBOL_NAME (symbol)
@@ -358,33 +311,15 @@ for linking")
 # define default_symbol_version(real, name, version) \
      _default_symbol_version(real, name, version)
 # ifdef __ASSEMBLER__
-#  ifdef HAVE_ASM_GLOBAL_DOT_NAME
-#   define _symbol_version(real, name, version) \
-     .symver real, name##@##version ASM_LINE_SEP                       \
-     .symver C_SYMBOL_DOT_NAME(real), C_SYMBOL_DOT_NAME(name##@##version)
-#   define _default_symbol_version(real, name, version) \
-     .symver real, name##@##@##version ASM_LINE_SEP                    \
-     .symver C_SYMBOL_DOT_NAME(real), C_SYMBOL_DOT_NAME(name##@##@##version)
-#  else
-#   define _symbol_version(real, name, version) \
+#  define _symbol_version(real, name, version) \
      .symver real, name##@##version
-#   define _default_symbol_version(real, name, version) \
+#  define _default_symbol_version(real, name, version) \
      .symver real, name##@##@##version
-#  endif
 # else
-#  ifdef HAVE_ASM_GLOBAL_DOT_NAME
-#   define _symbol_version(real, name, version) \
-     __asm__ (".symver " #real "," #name "@" #version "\n\t"   \
-             ".symver ." #real ",." #name "@" #version)
-#   define _default_symbol_version(real, name, version) \
-     __asm__ (".symver " #real "," #name "@@" #version "\n\t"  \
-             ".symver ." #real ",." #name "@@" #version)
-#  else
-#   define _symbol_version(real, name, version) \
+#  define _symbol_version(real, name, version) \
      __asm__ (".symver " #real "," #name "@" #version)
-#   define _default_symbol_version(real, name, version) \
+#  define _default_symbol_version(real, name, version) \
      __asm__ (".symver " #real "," #name "@@" #version)
-#  endif
 # endif
 #else
 # define symbol_version(real, name, version)
@@ -527,11 +462,7 @@ for linking")
 #  define hidden_data_def(name)        strong_data_alias (name, __GI_##name)
 #  define hidden_data_weak(name)       hidden_data_def (name)
 #  define hidden_data_ver(local, name) strong_data_alias (local, __GI_##name)
-#  ifdef HAVE_ASM_GLOBAL_DOT_NAME
-#   define HIDDEN_JUMPTARGET(name) .__GI_##name
-#  else
-#   define HIDDEN_JUMPTARGET(name) __GI_##name
-#  endif
+#  define HIDDEN_JUMPTARGET(name) __GI_##name
 # endif
 #else
 # ifndef __ASSEMBLER__
index 47fe951..0f27e67 100644 (file)
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#ifdef HAVE_ASM_GLOBAL_DOT_NAME
-# define DOT(x)        .##x            /* PPC64 requires . prefix on code symbols.  */
-#else
-# define DOT(x)        x               /* No prefix.  */
-#endif
+#define DOT(x) x               /* No prefix.  */
 
 #define STRINGIFY(name)                STRINGIFY_1(name)
 #define STRINGIFY_1(name)      #name
index 6b14d36..6915ed7 100644 (file)
@@ -48,13 +48,5 @@ td_lookup (struct ps_prochandle *ps, int idx, psaddr_t *sym_addr)
   result = ps_pglobal_lookup (ps, LIBPTHREAD_SO, symbol_list_arr[idx],
                              sym_addr);
 
-#ifdef HAVE_ASM_GLOBAL_DOT_NAME
-  /* For PowerPC, 64-bit uses dot symbols but 32-bit does not.
-     We could be a 64-bit libthread_db debugging a 32-bit libpthread.  */
-  if (result == PS_NOSYM && symbol_list_arr[idx][0] == '.')
-    result = ps_pglobal_lookup (ps, LIBPTHREAD_SO, &symbol_list_arr[idx][1],
-                               sym_addr);
-#endif
-
   return result;
 }
index 92ec607..d4deee7 100644 (file)
@@ -1,37 +1,6 @@
 # This file is generated from configure.ac by Autoconf.  DO NOT EDIT!
  # Local configure fragment for sysdeps/powerpc/powerpc64.
 
-# The Aix ld uses global .symbol_names instead of symbol_names
-# and unfortunately early Linux PPC64 linkers use it as well.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for support for omitting dot symbols" >&5
-$as_echo_n "checking for support for omitting dot symbols... " >&6; }
-if ${libc_cv_omit_dot_syms+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  libc_cv_omit_dot_syms=no
-echo 'void foo (void) {}' > conftest.c
-if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -S conftest.c -o conftest.s 1>&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-  if grep -w '\.foo' conftest.s > /dev/null; then
-    :
-  else
-    libc_cv_omit_dot_syms=yes
-  fi
-fi
-rm -f conftest.c conftest.s
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_omit_dot_syms" >&5
-$as_echo "$libc_cv_omit_dot_syms" >&6; }
-if test x$libc_cv_omit_dot_syms != xyes; then
-  $as_echo "#define HAVE_ASM_GLOBAL_DOT_NAME 1" >>confdefs.h
-
-fi
-
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for linker support for overlapping .opd entries" >&5
 $as_echo_n "checking for linker support for overlapping .opd entries... " >&6; }
 if ${libc_cv_overlapping_opd+:} false; then :
index 67aac66..9e9881c 100644 (file)
@@ -1,25 +1,6 @@
 GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
 # Local configure fragment for sysdeps/powerpc/powerpc64.
 
-# The Aix ld uses global .symbol_names instead of symbol_names
-# and unfortunately early Linux PPC64 linkers use it as well.
-AC_CACHE_CHECK(for support for omitting dot symbols,
-libc_cv_omit_dot_syms, [dnl
-libc_cv_omit_dot_syms=no
-echo 'void foo (void) {}' > conftest.c
-if AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
-  if grep -w '\.foo' conftest.s > /dev/null; then
-    :
-  else
-    libc_cv_omit_dot_syms=yes
-  fi
-fi
-rm -f conftest.c conftest.s
-])
-if test x$libc_cv_omit_dot_syms != xyes; then
-  AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
-fi
-
 AC_CACHE_CHECK(for linker support for overlapping .opd entries,
 libc_cv_overlapping_opd, [dnl
 libc_cv_overlapping_opd=no
index 1f4efe6..bf2a884 100644 (file)
 name##: OPD_ENT (name);                                \
        .previous;
 
-#ifdef HAVE_ASM_GLOBAL_DOT_NAME
-# define DOT_LABEL(X) .##X
-# define BODY_LABEL(X) .##X
-# define ENTRY_2(name) \
-       .globl BODY_LABEL(name);                \
-       ENTRY_1(name)                           \
-       .size name, 24;
-# define END_2(name)   \
-       .size BODY_LABEL(name),.-BODY_LABEL(name);
-#else
-# define DOT_LABEL(X) X
-# define BODY_LABEL(X) .LY##X
-# define ENTRY_2(name) \
+#define DOT_LABEL(X) X
+#define BODY_LABEL(X) .LY##X
+#define ENTRY_2(name)  \
        .type name,@function;                   \
        ENTRY_1(name)
-# define END_2(name)   \
+#define END_2(name)    \
        .size name,.-BODY_LABEL(name);          \
        .size BODY_LABEL(name),.-BODY_LABEL(name);
-#endif
 #define LOCALENTRY(name)
 
 #else /* _CALL_ELF */
@@ -403,25 +392,14 @@ LT_LABELSUFFIX(name,_name_end): ; \
        OPD_ENT (name) "\n"                                             \
        ".popsection;"
 
-#ifdef HAVE_ASM_GLOBAL_DOT_NAME
-# define DOT_PREFIX "."
-# define BODY_PREFIX "."
-# define ENTRY_2(name) \
-       ".globl " BODY_PREFIX #name ";\n"                               \
-       ENTRY_1(name) "\n"                                              \
-       ".size  " #name ", 24;"
-# define END_2(name)   \
-       ".size " BODY_PREFIX #name ",.-" BODY_PREFIX #name ";"
-#else
-# define DOT_PREFIX ""
-# define BODY_PREFIX ".LY"
-# define ENTRY_2(name) \
+#define DOT_PREFIX ""
+#define BODY_PREFIX ".LY"
+#define ENTRY_2(name)  \
        ".type " #name ",@function;\n"                                  \
        ENTRY_1(name)
-# define END_2(name)   \
+#define END_2(name)    \
        ".size " #name ",.-" BODY_PREFIX #name ";\n"                    \
        ".size " BODY_PREFIX #name ",.-" BODY_PREFIX #name ";"
-#endif
 #define LOCALENTRY(name)
 
 #else /* _CALL_ELF */
index 198215d..42a95ec 100644 (file)
          : "=r" (__result) );                                                \
      __result;                                                               \
   })
-#ifdef HAVE_ASM_GLOBAL_DOT_NAME
-# define __TLS_GET_ADDR ".__tls_get_addr"
-#else
-# define __TLS_GET_ADDR "__tls_get_addr"
-#endif
+
+#define __TLS_GET_ADDR "__tls_get_addr"
+
 /* PowerPC64 Local Dynamic TLS access.  */
 #define TLS_LD(x)                                                            \
   ({ int * __result;                                                         \
index 6579757..5cd7ddb 100644 (file)
 
 #if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt)
 
-# ifdef HAVE_ASM_GLOBAL_DOT_NAME
-#  define DASHDASHPFX(str) .__##str
-# else
-#  define DASHDASHPFX(str) __##str
-# endif
+# define DASHDASHPFX(str) __##str
 
 #if _CALL_ELF == 2
 #define CANCEL_FRAMESIZE (FRAME_MIN_SIZE+16+48)