AC_PROG_CC
+AC_PROG_CPP
AC_PROG_INSTALL
AC_PROG_LN_S
AC_DISABLE_STATIC
fi
AM_CONDITIONAL(VERSIONED_SYMBOLS, test x$versioned = xyes)
+dnl See if toolchain has a custom prefix for symbols ...
+AC_MSG_CHECKING(for custom symbol prefixes)
+SYMBOL_PREFIX=` \
+ echo "PREFIX=__USER_LABEL_PREFIX__" \
+ | ${CPP-${CC-gcc} -E} - 2>&1 \
+ | ${EGREP-grep} "^PREFIX=" \
+ | ${SED-sed} "s:^PREFIX=::"`
+AC_DEFINE_UNQUOTED([__SYMBOL_PREFIX], "$SYMBOL_PREFIX", [Toolchain Symbol Prefix])
+AC_MSG_RESULT($SYMBOL_PREFIX)
+
dnl Check for debug...
AC_MSG_CHECKING(for debug)
AC_ARG_WITH(debug,
#ifdef __powerpc64__
# define symbol_version(real, name, version) \
- __asm__ (".symver " #real "," #name "@" #version); \
- __asm__ (".symver ." #real ",." #name "@" #version)
+ __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@" #version); \
+ __asm__ (".symver ." ASM_NAME(#real) ",." ASM_NAME(#name) "@" #version)
# define default_symbol_version(real, name, version) \
- __asm__ (".symver " #real "," #name "@@" #version); \
- __asm__ (".symver ." #real ",." #name "@@" #version)
+ __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@@" #version); \
+ __asm__ (".symver ." ASM_NAME(#real) ",." ASM_NAME(#name) "@@" #version)
#else
# define symbol_version(real, name, version) \
- __asm__ (".symver " #real "," #name "@" #version)
+ __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@" #version)
# define default_symbol_version(real, name, version) \
- __asm__ (".symver " #real "," #name "@@" #version)
+ __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@@" #version)
#endif
#ifdef USE_VERSIONED_SYMBOLS
#define use_symbol_version(real, name, version) /* nothing */
#ifdef __powerpc64__
#define use_default_symbol_version(real, name, version) \
- __asm__ (".weak " #name); \
- __asm__ (".weak ." #name); \
- __asm__ (".set " #name "," #real); \
- __asm__ (".set ." #name ",." #real)
+ __asm__ (".weak " ASM_NAME(#name)); \
+ __asm__ (".weak ." ASM_NAME(#name)); \
+ __asm__ (".set " ASM_NAME(#name) "," ASM_NAME(#real)); \
+ __asm__ (".set ." ASM_NAME(#name) ",." ASM_NAME(#real))
#else
#if defined(__alpha__) || defined(__mips__)
#define use_default_symbol_version(real, name, version) \
- __asm__ (".weak " #name); \
- __asm__ (#name " = " #real)
+ __asm__ (".weak " ASM_NAME(#name)); \
+ __asm__ (ASM_NAME(#name) " = " ASM_NAME(#real))
#else
#define use_default_symbol_version(real, name, version) \
- __asm__ (".weak " #name); \
- __asm__ (".set " #name "," #real)
+ __asm__ (".weak " ASM_NAME(#name)); \
+ __asm__ (".set " ASM_NAME(#name) "," ASM_NAME(#real))
#endif
#endif
#endif
/* When a reference to SYMBOL is encountered, the linker will emit a
warning message MSG. */
+
+#define ASM_NAME(name) __SYMBOL_PREFIX name
+
#ifdef HAVE_GNU_LD
# ifdef HAVE_ELF
section attributes on what looks like a comment to the assembler. */
# ifdef HAVE_SECTION_QUOTES
# define link_warning(symbol, msg) \
- __make_section_unallocated (".gnu.warning." #symbol) \
+ __make_section_unallocated (".gnu.warning." ASM_NAME(#symbol)) \
static const char __evoke_link_warning_##symbol[] \
- __attribute__ ((section (".gnu.warning." #symbol "\"\n\t#\""))) = msg;
+ __attribute__ ((section (".gnu.warning." ASM_NAME(#symbol) "\"\n\t#\""))) = msg;
# else
# define link_warning(symbol, msg) \
- __make_section_unallocated (".gnu.warning." #symbol) \
+ __make_section_unallocated (".gnu.warning." ASM_NAME(#symbol)) \
static const char __evoke_link_warning_##symbol[] \
- __attribute__ ((section (".gnu.warning." #symbol "\n\t#"))) = msg;
+ __attribute__ ((section (".gnu.warning." ASM_NAME(#symbol) "\n\t#"))) = msg;
# endif
# else
# define link_warning(symbol, msg) \
asm (".stabs \"" msg "\",30,0,0,0\n\t" \
- ".stabs \"" __SYMBOL_PREFIX #symbol "\",1,0,0,0\n");
+ ".stabs \"" ASM_NAME(#symbol) "\",1,0,0,0\n");
# endif
#else
/* We will never be heard; they will all die horribly. */