powerpc: Remove HAVE_ASM_GLOBAL_DOT_NAME define
Commit Message
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
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)
>
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)
>>
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)
>>>
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)
>>>>
@@ -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
@@ -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__
@@ -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
@@ -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;
}
@@ -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 :
@@ -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
@@ -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 */
@@ -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; \
@@ -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)