summaryrefslogtreecommitdiff
path: root/src/libffmpeg/libavcodec/libpostproc/mangle.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libffmpeg/libavcodec/libpostproc/mangle.h')
-rw-r--r--src/libffmpeg/libavcodec/libpostproc/mangle.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/libffmpeg/libavcodec/libpostproc/mangle.h b/src/libffmpeg/libavcodec/libpostproc/mangle.h
index f3894cc33..aa09cd6bf 100644
--- a/src/libffmpeg/libavcodec/libpostproc/mangle.h
+++ b/src/libffmpeg/libavcodec/libpostproc/mangle.h
@@ -8,12 +8,21 @@
#define __MANGLE_H
/* Feel free to add more to the list, eg. a.out IMO */
+/* Use rip-relative addressing if compiling PIC code on x86-64. */
#if defined(__CYGWIN__) || defined(__MINGW32__) || defined(__OS2__) || \
(defined(__OpenBSD__) && !defined(__ELF__))
+#if defined(ARCH_X86_64) && defined(PIC)
+#define MANGLE(a) "_" #a"(%%rip)"
+#else
#define MANGLE(a) "_" #a
+#endif
+#else
+#if defined(ARCH_X86_64) && defined(PIC)
+#define MANGLE(a) #a"(%%rip)"
#else
#define MANGLE(a) #a
#endif
+#endif
#endif /* !__MANGLE_H */