[Android] [PATCH 6/7] contrib: ffmpeg: Disable fPIC when compiling for Android x86

Edward Wang edward.c.wang at compdigitec.com
Mon Jul 23 05:54:32 CEST 2012


Disable fPIC due to resolved problems in libav/ffmpeg suite.
---
 contrib/src/ffmpeg/rules.mak   |   16 +++++++++++++++-
 contrib/src/postproc/rules.mak |    7 +++++++
 2 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/contrib/src/ffmpeg/rules.mak b/contrib/src/ffmpeg/rules.mak
index ed6d8e8..c36bd7c 100644
--- a/contrib/src/ffmpeg/rules.mak
+++ b/contrib/src/ffmpeg/rules.mak
@@ -81,7 +81,21 @@ endif
 
 # Linux
 ifdef HAVE_LINUX
-FFMPEGCONF += --target-os=linux --enable-pic
+FFMPEGCONF += --target-os=linux
+
+ifeq ($(ANDROID_ABI), x86)
+ifdef HAVE_ANDROID
+# --disable-pic because Android-x86 fPIC isn't compatible with libav ASM:
+# libavcodec/x86/mpegaudiodec_mmx.c:73: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'
+# libavcodec/x86/mpegaudiodec_mmx.c:73: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'
+# libavcodec/x86/mpegaudiodec_mmx.c:73: error: 'asm' operand has impossible constraints
+FFMPEGCONF += --disable-pic
+FFMPEG_CFLAGS += -fno-PIC
+endif # HAVE_ANDROID
+else
+FFMPEGCONF += --enable-pic
+endif
+
 endif
 
 # Windows
diff --git a/contrib/src/postproc/rules.mak b/contrib/src/postproc/rules.mak
index 6271b50..518865d 100644
--- a/contrib/src/postproc/rules.mak
+++ b/contrib/src/postproc/rules.mak
@@ -47,6 +47,13 @@ endif
 # Linux
 ifdef HAVE_LINUX
 POSTPROCCONF += --target-os=linux
+
+ifeq ($(ANDROID_ABI), x86)
+ifdef HAVE_ANDROID
+POSTPROC_CFLAGS += -fno-PIC
+endif # HAVE_ANDROID
+endif
+
 # --enable-pic
 endif
 
-- 
1.7.5.4



More information about the Android mailing list