mirror of git://sourceware.org/git/glibc.git
powerpc: Remove HAVE_ASM_GLOBAL_DOT_NAME define
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.
This commit is contained in:
parent
b42e14ff3e
commit
5ca10a0c9a
27
ChangeLog
27
ChangeLog
|
|
@ -1,3 +1,30 @@
|
||||||
|
2015-03-11 Adhemerval Zanellla <azanella@linux.vnet.ibm.com>
|
||||||
|
|
||||||
|
* config.h.in [HAVE_ASM_GLOBAL_DOT_NAME]: Remove define.
|
||||||
|
* include/libc-symbols.h [HAVE_ASM_GLOBAL_DOT_NAME] (strong_alias):
|
||||||
|
Remove define.
|
||||||
|
[HAVE_ASM_GLOBAL_DOT_NAME] (strong_data_alias): Likewise.
|
||||||
|
[HAVE_ASM_GLOBAL_DOT_NAME] (weak_alias): Likewise.
|
||||||
|
[HAVE_ASM_GLOBAL_DOT_NAME] (_symbol_version): Likewise.
|
||||||
|
[HAVE_ASM_GLOBAL_DOT_NAME] (_default_symbol_version): Likewise.
|
||||||
|
[HAVE_ASM_GLOBAL_DOT_NAME] (HIDDEN_JUMPTARGET): Likewise.
|
||||||
|
* nptl_db/db-symbols.h [HAVE_ASM_GLOBAL_DOT_NAME] (DOT): Remove
|
||||||
|
define.
|
||||||
|
* nptl_db/td_symbol_list.c (td_lookup): Remove
|
||||||
|
HAVE_ASM_GLOBAL_DOT_NAME code.
|
||||||
|
* sysdeps/powerpc/powerpc64/configure.ac: Remove
|
||||||
|
HAVE_ASM_GLOBAL_DOT_NAME check.
|
||||||
|
* sysdeps/powerpc/powerpc64/configure: Regenerate.
|
||||||
|
* sysdeps/powerpc/powerpc64/sysdep.h [HAVE_ASM_GLOBAL_DOT_NAME]
|
||||||
|
(DOT_LABEL): Remove define.
|
||||||
|
[HAVE_ASM_GLOBAL_DOT_NAME] (BODY_LABEL): Likewise.
|
||||||
|
[HAVE_ASM_GLOBAL_DOT_NAME] (ENTRY_2): Likewise.
|
||||||
|
[HAVE_ASM_GLOBAL_DOT_NAME] (END_2): Likewise.
|
||||||
|
* sysdeps/powerpc/powerpc64/tls-macros.h [HAVE_ASM_GLOBAL_DOT_NAME]
|
||||||
|
(__TLS_GET_ADDR): Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
|
||||||
|
[HAVE_ASM_GLOBAL_DOT_NAME] (DASHDASHPFX): Likewise.
|
||||||
|
|
||||||
2015-03-11 Carlos O'Donell <carlos@redhat.com>
|
2015-03-11 Carlos O'Donell <carlos@redhat.com>
|
||||||
|
|
||||||
[BZ #18111]
|
[BZ #18111]
|
||||||
|
|
|
||||||
|
|
@ -37,9 +37,6 @@
|
||||||
/* Define if the assembler supports the gnu_unique_object symbol type. */
|
/* Define if the assembler supports the gnu_unique_object symbol type. */
|
||||||
#undef HAVE_ASM_UNIQUE_OBJECT
|
#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. */
|
/* On powerpc64, use overlapping .opd entries. */
|
||||||
#undef USE_PPC64_OVERLAPPING_OPD
|
#undef USE_PPC64_OVERLAPPING_OPD
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -96,17 +96,6 @@
|
||||||
# define ASM_LINE_SEP ;
|
# define ASM_LINE_SEP ;
|
||||||
#endif
|
#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__
|
#ifndef __ASSEMBLER__
|
||||||
/* GCC understands weak symbols and aliases; use its interface where
|
/* GCC understands weak symbols and aliases; use its interface where
|
||||||
possible, instead of embedded assembly language. */
|
possible, instead of embedded assembly language. */
|
||||||
|
|
@ -142,64 +131,28 @@
|
||||||
#else /* __ASSEMBLER__ */
|
#else /* __ASSEMBLER__ */
|
||||||
|
|
||||||
# ifdef HAVE_ASM_SET_DIRECTIVE
|
# ifdef HAVE_ASM_SET_DIRECTIVE
|
||||||
# ifdef HAVE_ASM_GLOBAL_DOT_NAME
|
# 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) 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 \
|
.globl C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
||||||
.set C_SYMBOL_NAME (alias),C_SYMBOL_NAME (original)
|
.set C_SYMBOL_NAME (alias),C_SYMBOL_NAME (original)
|
||||||
# else
|
# define strong_data_alias(original, alias) 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
|
|
||||||
# else
|
# else
|
||||||
# ifdef HAVE_ASM_GLOBAL_DOT_NAME
|
# define strong_alias(original, alias) \
|
||||||
# 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) \
|
|
||||||
.globl C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
.globl C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
||||||
C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
|
C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
|
||||||
# else
|
# define strong_data_alias(original, alias) strong_alias(original, alias)
|
||||||
# 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
|
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef HAVE_ASM_WEAKEXT_DIRECTIVE
|
# ifdef HAVE_ASM_WEAKEXT_DIRECTIVE
|
||||||
# ifdef HAVE_ASM_GLOBAL_DOT_NAME
|
# define weak_alias(original, alias) \
|
||||||
# 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) \
|
|
||||||
.weakext C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
|
.weakext C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
|
||||||
# endif
|
|
||||||
# define weak_extern(symbol) \
|
# define weak_extern(symbol) \
|
||||||
.weakext C_SYMBOL_NAME (symbol)
|
.weakext C_SYMBOL_NAME (symbol)
|
||||||
|
|
||||||
# else /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */
|
# else /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */
|
||||||
|
|
||||||
# ifdef HAVE_ASM_GLOBAL_DOT_NAME
|
# 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) 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) \
|
|
||||||
.weak C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
.weak C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
||||||
C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
|
C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
|
||||||
# endif
|
|
||||||
|
|
||||||
# define weak_extern(symbol) \
|
# define weak_extern(symbol) \
|
||||||
.weak C_SYMBOL_NAME (symbol)
|
.weak C_SYMBOL_NAME (symbol)
|
||||||
|
|
@ -358,33 +311,15 @@ for linking")
|
||||||
# define default_symbol_version(real, name, version) \
|
# define default_symbol_version(real, name, version) \
|
||||||
_default_symbol_version(real, name, version)
|
_default_symbol_version(real, name, version)
|
||||||
# ifdef __ASSEMBLER__
|
# ifdef __ASSEMBLER__
|
||||||
# ifdef HAVE_ASM_GLOBAL_DOT_NAME
|
# define _symbol_version(real, name, version) \
|
||||||
# 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) \
|
|
||||||
.symver 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
|
.symver real, name##@##@##version
|
||||||
# endif
|
|
||||||
# else
|
# else
|
||||||
# ifdef HAVE_ASM_GLOBAL_DOT_NAME
|
# define _symbol_version(real, name, version) \
|
||||||
# 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) \
|
|
||||||
__asm__ (".symver " #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)
|
__asm__ (".symver " #real "," #name "@@" #version)
|
||||||
# endif
|
|
||||||
# endif
|
# endif
|
||||||
#else
|
#else
|
||||||
# define symbol_version(real, name, version)
|
# 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_def(name) strong_data_alias (name, __GI_##name)
|
||||||
# define hidden_data_weak(name) hidden_data_def (name)
|
# define hidden_data_weak(name) hidden_data_def (name)
|
||||||
# define hidden_data_ver(local, name) strong_data_alias (local, __GI_##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
|
||||||
# define HIDDEN_JUMPTARGET(name) .__GI_##name
|
|
||||||
# else
|
|
||||||
# define HIDDEN_JUMPTARGET(name) __GI_##name
|
|
||||||
# endif
|
|
||||||
# endif
|
# endif
|
||||||
#else
|
#else
|
||||||
# ifndef __ASSEMBLER__
|
# ifndef __ASSEMBLER__
|
||||||
|
|
|
||||||
|
|
@ -16,11 +16,7 @@
|
||||||
License along with the GNU C Library; if not, see
|
License along with the GNU C Library; if not, see
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#ifdef HAVE_ASM_GLOBAL_DOT_NAME
|
#define DOT(x) x /* No prefix. */
|
||||||
# define DOT(x) .##x /* PPC64 requires . prefix on code symbols. */
|
|
||||||
#else
|
|
||||||
# define DOT(x) x /* No prefix. */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define STRINGIFY(name) STRINGIFY_1(name)
|
#define STRINGIFY(name) STRINGIFY_1(name)
|
||||||
#define STRINGIFY_1(name) #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],
|
result = ps_pglobal_lookup (ps, LIBPTHREAD_SO, symbol_list_arr[idx],
|
||||||
sym_addr);
|
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;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,37 +1,6 @@
|
||||||
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
|
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
|
||||||
# Local configure fragment for sysdeps/powerpc/powerpc64.
|
# 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 "$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; }
|
$as_echo_n "checking for linker support for overlapping .opd entries... " >&6; }
|
||||||
if ${libc_cv_overlapping_opd+:} false; then :
|
if ${libc_cv_overlapping_opd+:} false; then :
|
||||||
|
|
|
||||||
|
|
@ -1,25 +1,6 @@
|
||||||
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
|
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
|
||||||
# Local configure fragment for sysdeps/powerpc/powerpc64.
|
# 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,
|
AC_CACHE_CHECK(for linker support for overlapping .opd entries,
|
||||||
libc_cv_overlapping_opd, [dnl
|
libc_cv_overlapping_opd, [dnl
|
||||||
libc_cv_overlapping_opd=no
|
libc_cv_overlapping_opd=no
|
||||||
|
|
|
||||||
|
|
@ -140,25 +140,14 @@
|
||||||
name##: OPD_ENT (name); \
|
name##: OPD_ENT (name); \
|
||||||
.previous;
|
.previous;
|
||||||
|
|
||||||
#ifdef HAVE_ASM_GLOBAL_DOT_NAME
|
#define DOT_LABEL(X) X
|
||||||
# define DOT_LABEL(X) .##X
|
#define BODY_LABEL(X) .LY##X
|
||||||
# define BODY_LABEL(X) .##X
|
#define ENTRY_2(name) \
|
||||||
# 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) \
|
|
||||||
.type name,@function; \
|
.type name,@function; \
|
||||||
ENTRY_1(name)
|
ENTRY_1(name)
|
||||||
# define END_2(name) \
|
#define END_2(name) \
|
||||||
.size name,.-BODY_LABEL(name); \
|
.size name,.-BODY_LABEL(name); \
|
||||||
.size BODY_LABEL(name),.-BODY_LABEL(name);
|
.size BODY_LABEL(name),.-BODY_LABEL(name);
|
||||||
#endif
|
|
||||||
#define LOCALENTRY(name)
|
#define LOCALENTRY(name)
|
||||||
|
|
||||||
#else /* _CALL_ELF */
|
#else /* _CALL_ELF */
|
||||||
|
|
@ -403,25 +392,14 @@ LT_LABELSUFFIX(name,_name_end): ; \
|
||||||
OPD_ENT (name) "\n" \
|
OPD_ENT (name) "\n" \
|
||||||
".popsection;"
|
".popsection;"
|
||||||
|
|
||||||
#ifdef HAVE_ASM_GLOBAL_DOT_NAME
|
#define DOT_PREFIX ""
|
||||||
# define DOT_PREFIX "."
|
#define BODY_PREFIX ".LY"
|
||||||
# define BODY_PREFIX "."
|
#define ENTRY_2(name) \
|
||||||
# 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) \
|
|
||||||
".type " #name ",@function;\n" \
|
".type " #name ",@function;\n" \
|
||||||
ENTRY_1(name)
|
ENTRY_1(name)
|
||||||
# define END_2(name) \
|
#define END_2(name) \
|
||||||
".size " #name ",.-" BODY_PREFIX #name ";\n" \
|
".size " #name ",.-" BODY_PREFIX #name ";\n" \
|
||||||
".size " BODY_PREFIX #name ",.-" BODY_PREFIX #name ";"
|
".size " BODY_PREFIX #name ",.-" BODY_PREFIX #name ";"
|
||||||
#endif
|
|
||||||
#define LOCALENTRY(name)
|
#define LOCALENTRY(name)
|
||||||
|
|
||||||
#else /* _CALL_ELF */
|
#else /* _CALL_ELF */
|
||||||
|
|
|
||||||
|
|
@ -17,11 +17,9 @@
|
||||||
: "=r" (__result) ); \
|
: "=r" (__result) ); \
|
||||||
__result; \
|
__result; \
|
||||||
})
|
})
|
||||||
#ifdef HAVE_ASM_GLOBAL_DOT_NAME
|
|
||||||
# define __TLS_GET_ADDR ".__tls_get_addr"
|
#define __TLS_GET_ADDR "__tls_get_addr"
|
||||||
#else
|
|
||||||
# define __TLS_GET_ADDR "__tls_get_addr"
|
|
||||||
#endif
|
|
||||||
/* PowerPC64 Local Dynamic TLS access. */
|
/* PowerPC64 Local Dynamic TLS access. */
|
||||||
#define TLS_LD(x) \
|
#define TLS_LD(x) \
|
||||||
({ int * __result; \
|
({ int * __result; \
|
||||||
|
|
|
||||||
|
|
@ -25,11 +25,7 @@
|
||||||
|
|
||||||
#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt)
|
#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt)
|
||||||
|
|
||||||
# ifdef HAVE_ASM_GLOBAL_DOT_NAME
|
# define DASHDASHPFX(str) __##str
|
||||||
# define DASHDASHPFX(str) .__##str
|
|
||||||
# else
|
|
||||||
# define DASHDASHPFX(str) __##str
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#if _CALL_ELF == 2
|
#if _CALL_ELF == 2
|
||||||
#define CANCEL_FRAMESIZE (FRAME_MIN_SIZE+16+48)
|
#define CANCEL_FRAMESIZE (FRAME_MIN_SIZE+16+48)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue