powerpc: Remove HAVE_ASM_GLOBAL_DOT_NAME define

Message ID 54D124C1.3010208@linux.vnet.ibm.com
State Committed
Delegated to: Adhemerval Zanella Netto
Headers

Commit Message

Adhemerval Zanella Netto Feb. 3, 2015, 7:42 p.m. UTC
  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.

Checked on powerpc64.

--

	* 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.

--
  

Comments

Adhemerval Zanella Netto Feb. 9, 2015, 1:38 p.m. UTC | #1
Ping.

On 03-02-2015 17:42, Adhemerval Zanella wrote:
> 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.
>
> Checked on powerpc64.
>
> --
>
> 	* 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.
>
> --
>
> diff --git a/config.h.in b/config.h.in
> index 695ca35..a1ae478 100644
> --- a/config.h.in
> +++ b/config.h.in
> @@ -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
>
> diff --git a/include/libc-symbols.h b/include/libc-symbols.h
> index 2da0ab4..ca3fe00 100644
> --- a/include/libc-symbols.h
> +++ b/include/libc-symbols.h
> @@ -96,17 +96,6 @@
>  # 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.  */
> @@ -142,64 +131,28 @@
>  #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__
> diff --git a/nptl_db/db-symbols.h b/nptl_db/db-symbols.h
> index 47fe951..0f27e67 100644
> --- a/nptl_db/db-symbols.h
> +++ b/nptl_db/db-symbols.h
> @@ -16,11 +16,7 @@
>     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
> diff --git a/nptl_db/td_symbol_list.c b/nptl_db/td_symbol_list.c
> index 6b14d36..6915ed7 100644
> --- a/nptl_db/td_symbol_list.c
> +++ b/nptl_db/td_symbol_list.c
> @@ -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;
>  }
> diff --git a/sysdeps/powerpc/powerpc64/configure b/sysdeps/powerpc/powerpc64/configure
> index 92ec607..d4deee7 100644
> --- a/sysdeps/powerpc/powerpc64/configure
> +++ b/sysdeps/powerpc/powerpc64/configure
> @@ -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 :
> diff --git a/sysdeps/powerpc/powerpc64/configure.ac b/sysdeps/powerpc/powerpc64/configure.ac
> index 67aac66..9e9881c 100644
> --- a/sysdeps/powerpc/powerpc64/configure.ac
> +++ b/sysdeps/powerpc/powerpc64/configure.ac
> @@ -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
> diff --git a/sysdeps/powerpc/powerpc64/sysdep.h b/sysdeps/powerpc/powerpc64/sysdep.h
> index 1f4efe6..bf2a884 100644
> --- a/sysdeps/powerpc/powerpc64/sysdep.h
> +++ b/sysdeps/powerpc/powerpc64/sysdep.h
> @@ -140,25 +140,14 @@
>  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 */
> diff --git a/sysdeps/powerpc/powerpc64/tls-macros.h b/sysdeps/powerpc/powerpc64/tls-macros.h
> index 198215d..42a95ec 100644
> --- a/sysdeps/powerpc/powerpc64/tls-macros.h
> +++ b/sysdeps/powerpc/powerpc64/tls-macros.h
> @@ -17,11 +17,9 @@
>  	  : "=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;							      \
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
> index 6579757..5cd7ddb 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
> @@ -25,11 +25,7 @@
>
>  #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)
>
  
Adhemerval Zanella Netto March 3, 2015, 6:34 p.m. UTC | #2
Ping.

On 09-02-2015 11:38, Adhemerval Zanella wrote:
> Ping.
>
> On 03-02-2015 17:42, Adhemerval Zanella wrote:
>> 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.
>>
>> Checked on powerpc64.
>>
>> --
>>
>> 	* 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.
>>
>> --
>>
>> diff --git a/config.h.in b/config.h.in
>> index 695ca35..a1ae478 100644
>> --- a/config.h.in
>> +++ b/config.h.in
>> @@ -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
>>
>> diff --git a/include/libc-symbols.h b/include/libc-symbols.h
>> index 2da0ab4..ca3fe00 100644
>> --- a/include/libc-symbols.h
>> +++ b/include/libc-symbols.h
>> @@ -96,17 +96,6 @@
>>  # 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.  */
>> @@ -142,64 +131,28 @@
>>  #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__
>> diff --git a/nptl_db/db-symbols.h b/nptl_db/db-symbols.h
>> index 47fe951..0f27e67 100644
>> --- a/nptl_db/db-symbols.h
>> +++ b/nptl_db/db-symbols.h
>> @@ -16,11 +16,7 @@
>>     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
>> diff --git a/nptl_db/td_symbol_list.c b/nptl_db/td_symbol_list.c
>> index 6b14d36..6915ed7 100644
>> --- a/nptl_db/td_symbol_list.c
>> +++ b/nptl_db/td_symbol_list.c
>> @@ -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;
>>  }
>> diff --git a/sysdeps/powerpc/powerpc64/configure b/sysdeps/powerpc/powerpc64/configure
>> index 92ec607..d4deee7 100644
>> --- a/sysdeps/powerpc/powerpc64/configure
>> +++ b/sysdeps/powerpc/powerpc64/configure
>> @@ -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 :
>> diff --git a/sysdeps/powerpc/powerpc64/configure.ac b/sysdeps/powerpc/powerpc64/configure.ac
>> index 67aac66..9e9881c 100644
>> --- a/sysdeps/powerpc/powerpc64/configure.ac
>> +++ b/sysdeps/powerpc/powerpc64/configure.ac
>> @@ -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
>> diff --git a/sysdeps/powerpc/powerpc64/sysdep.h b/sysdeps/powerpc/powerpc64/sysdep.h
>> index 1f4efe6..bf2a884 100644
>> --- a/sysdeps/powerpc/powerpc64/sysdep.h
>> +++ b/sysdeps/powerpc/powerpc64/sysdep.h
>> @@ -140,25 +140,14 @@
>>  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 */
>> diff --git a/sysdeps/powerpc/powerpc64/tls-macros.h b/sysdeps/powerpc/powerpc64/tls-macros.h
>> index 198215d..42a95ec 100644
>> --- a/sysdeps/powerpc/powerpc64/tls-macros.h
>> +++ b/sysdeps/powerpc/powerpc64/tls-macros.h
>> @@ -17,11 +17,9 @@
>>  	  : "=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;							      \
>> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
>> index 6579757..5cd7ddb 100644
>> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
>> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
>> @@ -25,11 +25,7 @@
>>
>>  #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)
>>
  
Adhemerval Zanella Netto March 9, 2015, 7:51 p.m. UTC | #3
Although this touch various non-powerpc files, this change is only used
on powerpc.  If nobody objects I will commit it today or later tomorrow.


On 03-03-2015 15:34, Adhemerval Zanella wrote:
> Ping.
>
> On 09-02-2015 11:38, Adhemerval Zanella wrote:
>> Ping.
>>
>> On 03-02-2015 17:42, Adhemerval Zanella wrote:
>>> 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.
>>>
>>> Checked on powerpc64.
>>>
>>> --
>>>
>>> 	* 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.
>>>
>>> --
>>>
>>> diff --git a/config.h.in b/config.h.in
>>> index 695ca35..a1ae478 100644
>>> --- a/config.h.in
>>> +++ b/config.h.in
>>> @@ -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
>>>
>>> diff --git a/include/libc-symbols.h b/include/libc-symbols.h
>>> index 2da0ab4..ca3fe00 100644
>>> --- a/include/libc-symbols.h
>>> +++ b/include/libc-symbols.h
>>> @@ -96,17 +96,6 @@
>>>  # 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.  */
>>> @@ -142,64 +131,28 @@
>>>  #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__
>>> diff --git a/nptl_db/db-symbols.h b/nptl_db/db-symbols.h
>>> index 47fe951..0f27e67 100644
>>> --- a/nptl_db/db-symbols.h
>>> +++ b/nptl_db/db-symbols.h
>>> @@ -16,11 +16,7 @@
>>>     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
>>> diff --git a/nptl_db/td_symbol_list.c b/nptl_db/td_symbol_list.c
>>> index 6b14d36..6915ed7 100644
>>> --- a/nptl_db/td_symbol_list.c
>>> +++ b/nptl_db/td_symbol_list.c
>>> @@ -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;
>>>  }
>>> diff --git a/sysdeps/powerpc/powerpc64/configure b/sysdeps/powerpc/powerpc64/configure
>>> index 92ec607..d4deee7 100644
>>> --- a/sysdeps/powerpc/powerpc64/configure
>>> +++ b/sysdeps/powerpc/powerpc64/configure
>>> @@ -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 :
>>> diff --git a/sysdeps/powerpc/powerpc64/configure.ac b/sysdeps/powerpc/powerpc64/configure.ac
>>> index 67aac66..9e9881c 100644
>>> --- a/sysdeps/powerpc/powerpc64/configure.ac
>>> +++ b/sysdeps/powerpc/powerpc64/configure.ac
>>> @@ -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
>>> diff --git a/sysdeps/powerpc/powerpc64/sysdep.h b/sysdeps/powerpc/powerpc64/sysdep.h
>>> index 1f4efe6..bf2a884 100644
>>> --- a/sysdeps/powerpc/powerpc64/sysdep.h
>>> +++ b/sysdeps/powerpc/powerpc64/sysdep.h
>>> @@ -140,25 +140,14 @@
>>>  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 */
>>> diff --git a/sysdeps/powerpc/powerpc64/tls-macros.h b/sysdeps/powerpc/powerpc64/tls-macros.h
>>> index 198215d..42a95ec 100644
>>> --- a/sysdeps/powerpc/powerpc64/tls-macros.h
>>> +++ b/sysdeps/powerpc/powerpc64/tls-macros.h
>>> @@ -17,11 +17,9 @@
>>>  	  : "=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;							      \
>>> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
>>> index 6579757..5cd7ddb 100644
>>> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
>>> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
>>> @@ -25,11 +25,7 @@
>>>
>>>  #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)
>>>
  
Adhemerval Zanella Netto March 11, 2015, 1:07 p.m. UTC | #4
Pushed upstream as 5ca10a0c9ad1edb3b2e2e59ac6dccdd879cf84ae


On 09-03-2015 16:51, Adhemerval Zanella wrote:
> Although this touch various non-powerpc files, this change is only used
> on powerpc.  If nobody objects I will commit it today or later tomorrow.
>
>
> On 03-03-2015 15:34, Adhemerval Zanella wrote:
>> Ping.
>>
>> On 09-02-2015 11:38, Adhemerval Zanella wrote:
>>> Ping.
>>>
>>> On 03-02-2015 17:42, Adhemerval Zanella wrote:
>>>> 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.
>>>>
>>>> Checked on powerpc64.
>>>>
>>>> --
>>>>
>>>> 	* 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.
>>>>
>>>> --
>>>>
>>>> diff --git a/config.h.in b/config.h.in
>>>> index 695ca35..a1ae478 100644
>>>> --- a/config.h.in
>>>> +++ b/config.h.in
>>>> @@ -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
>>>>
>>>> diff --git a/include/libc-symbols.h b/include/libc-symbols.h
>>>> index 2da0ab4..ca3fe00 100644
>>>> --- a/include/libc-symbols.h
>>>> +++ b/include/libc-symbols.h
>>>> @@ -96,17 +96,6 @@
>>>>  # 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.  */
>>>> @@ -142,64 +131,28 @@
>>>>  #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__
>>>> diff --git a/nptl_db/db-symbols.h b/nptl_db/db-symbols.h
>>>> index 47fe951..0f27e67 100644
>>>> --- a/nptl_db/db-symbols.h
>>>> +++ b/nptl_db/db-symbols.h
>>>> @@ -16,11 +16,7 @@
>>>>     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
>>>> diff --git a/nptl_db/td_symbol_list.c b/nptl_db/td_symbol_list.c
>>>> index 6b14d36..6915ed7 100644
>>>> --- a/nptl_db/td_symbol_list.c
>>>> +++ b/nptl_db/td_symbol_list.c
>>>> @@ -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;
>>>>  }
>>>> diff --git a/sysdeps/powerpc/powerpc64/configure b/sysdeps/powerpc/powerpc64/configure
>>>> index 92ec607..d4deee7 100644
>>>> --- a/sysdeps/powerpc/powerpc64/configure
>>>> +++ b/sysdeps/powerpc/powerpc64/configure
>>>> @@ -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 :
>>>> diff --git a/sysdeps/powerpc/powerpc64/configure.ac b/sysdeps/powerpc/powerpc64/configure.ac
>>>> index 67aac66..9e9881c 100644
>>>> --- a/sysdeps/powerpc/powerpc64/configure.ac
>>>> +++ b/sysdeps/powerpc/powerpc64/configure.ac
>>>> @@ -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
>>>> diff --git a/sysdeps/powerpc/powerpc64/sysdep.h b/sysdeps/powerpc/powerpc64/sysdep.h
>>>> index 1f4efe6..bf2a884 100644
>>>> --- a/sysdeps/powerpc/powerpc64/sysdep.h
>>>> +++ b/sysdeps/powerpc/powerpc64/sysdep.h
>>>> @@ -140,25 +140,14 @@
>>>>  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 */
>>>> diff --git a/sysdeps/powerpc/powerpc64/tls-macros.h b/sysdeps/powerpc/powerpc64/tls-macros.h
>>>> index 198215d..42a95ec 100644
>>>> --- a/sysdeps/powerpc/powerpc64/tls-macros.h
>>>> +++ b/sysdeps/powerpc/powerpc64/tls-macros.h
>>>> @@ -17,11 +17,9 @@
>>>>  	  : "=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;							      \
>>>> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
>>>> index 6579757..5cd7ddb 100644
>>>> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
>>>> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
>>>> @@ -25,11 +25,7 @@
>>>>
>>>>  #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)
>>>>
  

Patch

diff --git a/config.h.in b/config.h.in
index 695ca35..a1ae478 100644
--- a/config.h.in
+++ b/config.h.in
@@ -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
 
diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index 2da0ab4..ca3fe00 100644
--- a/include/libc-symbols.h
+++ b/include/libc-symbols.h
@@ -96,17 +96,6 @@ 
 # 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.  */
@@ -142,64 +131,28 @@ 
 #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__
diff --git a/nptl_db/db-symbols.h b/nptl_db/db-symbols.h
index 47fe951..0f27e67 100644
--- a/nptl_db/db-symbols.h
+++ b/nptl_db/db-symbols.h
@@ -16,11 +16,7 @@ 
    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
diff --git a/nptl_db/td_symbol_list.c b/nptl_db/td_symbol_list.c
index 6b14d36..6915ed7 100644
--- a/nptl_db/td_symbol_list.c
+++ b/nptl_db/td_symbol_list.c
@@ -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;
 }
diff --git a/sysdeps/powerpc/powerpc64/configure b/sysdeps/powerpc/powerpc64/configure
index 92ec607..d4deee7 100644
--- a/sysdeps/powerpc/powerpc64/configure
+++ b/sysdeps/powerpc/powerpc64/configure
@@ -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 :
diff --git a/sysdeps/powerpc/powerpc64/configure.ac b/sysdeps/powerpc/powerpc64/configure.ac
index 67aac66..9e9881c 100644
--- a/sysdeps/powerpc/powerpc64/configure.ac
+++ b/sysdeps/powerpc/powerpc64/configure.ac
@@ -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
diff --git a/sysdeps/powerpc/powerpc64/sysdep.h b/sysdeps/powerpc/powerpc64/sysdep.h
index 1f4efe6..bf2a884 100644
--- a/sysdeps/powerpc/powerpc64/sysdep.h
+++ b/sysdeps/powerpc/powerpc64/sysdep.h
@@ -140,25 +140,14 @@ 
 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 */
diff --git a/sysdeps/powerpc/powerpc64/tls-macros.h b/sysdeps/powerpc/powerpc64/tls-macros.h
index 198215d..42a95ec 100644
--- a/sysdeps/powerpc/powerpc64/tls-macros.h
+++ b/sysdeps/powerpc/powerpc64/tls-macros.h
@@ -17,11 +17,9 @@ 
 	  : "=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;							      \
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
index 6579757..5cd7ddb 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
@@ -25,11 +25,7 @@ 
 
 #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)