summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMåns Rullgård <mans@mansr.com>2008-03-18 02:01:20 +0000
committerMåns Rullgård <mans@mansr.com>2008-03-18 02:01:20 +0000
commitb4d96ba2a838d26e469887dfb1c6088005d09f0b (patch)
tree4ea3c641829bd0307b48b27ff717b80b1546b4ab
parent6fcc9af0123abb25b82c43ef631e12069853d725 (diff)
check for prefix on extern symbols in configure
Originally committed as revision 12484 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rwxr-xr-xconfigure7
-rw-r--r--libavutil/internal.h14
2 files changed, 10 insertions, 11 deletions
diff --git a/configure b/configure
index 8c241cfcf1..16860d2514 100755
--- a/configure
+++ b/configure
@@ -1491,6 +1491,12 @@ if test "$?" != 0; then
die "C compiler test failed."
fi
+check_cc <<EOF || die "Symbol mangling check failed."
+int ff_extern;
+EOF
+sym=$(nm -P $TMPO)
+extern_prefix=${sym%%ff_extern*}
+
check_asm inline_asm '""'
if enabled x86; then
@@ -2070,6 +2076,7 @@ enabled asmalign_pot &&
printf '#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\\n\\t"\n' >> $TMPH ||
printf '#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\\n\\t"\n' >> $TMPH
+echo "#define EXTERN_PREFIX \"${extern_prefix}\"" >> $TMPH
echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH
diff --git a/libavutil/internal.h b/libavutil/internal.h
index 6f1dd80639..ccb0974ad2 100644
--- a/libavutil/internal.h
+++ b/libavutil/internal.h
@@ -119,18 +119,10 @@
#endif
// Use rip-relative addressing if compiling PIC code on x86-64.
-#if defined(__MINGW32__) || defined(__CYGWIN__) || defined(__DJGPP__) || \
- defined(__OS2__) || defined(__APPLE__) || \
- (defined (__OpenBSD__) && !defined(__ELF__))
-# if defined(ARCH_X86_64) && defined(PIC)
-# define MANGLE(a) "_" #a"(%%rip)"
-# else
-# define MANGLE(a) "_" #a
-# endif
-#elif defined(ARCH_X86_64) && defined(PIC)
-# define MANGLE(a) #a"(%%rip)"
+#if defined(ARCH_X86_64) && defined(PIC)
+# define MANGLE(a) EXTERN_PREFIX #a"(%%rip)"
#else
-# define MANGLE(a) #a
+# define MANGLE(a) EXTERN_PREFIX #a
#endif
/* debug stuff */