Message ID | 54D124C1.3010208@linux.vnet.ibm.com |
---|---|
State | New |
Headers | show |
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) >>>>
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)