[FFmpeg-user] iOS 6.0: Unable to use ARM optimized assembler functions.

Ryan Gomes gomes.ryan at gmail.com
Fri Dec 28 00:55:18 CET 2012


Hello,
I'm attempting to build libavformat.a, libavcodec.a, and libavutil.a and
link them into an iOS 6.0 project (I am using Xcode version 4.5.2.)
 Everything works fine when I configure with option --disable-asm:

./configure --prefix=armv7 --disable-ffmpeg --disable-ffplay
--disable-ffprobe --disable-doc --disable-ffserver --enable-avresample
--enable-cross-compile
--sysroot="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk"
--target-os=darwin
--cc="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc"
--extra-cflags="-arch armv7 -mfpu=neon -miphoneos-version-min=6.0"
--extra-ldflags="-arch armv7 -isysroot
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk
-miphoneos-version-min=6.0" --arch=arm --cpu=cortex-a9 --enable-pic
--disable-bzlib --disable-zlib --disable-asm

However, I would like to improve video decoding performance by enabling
support for optimized assembler functions (e.g., NEON instructions.)  I
have installed gas-preprocessor.pl in /usr/local/bin as required.  The
configuration below with --enable-asm compiles correctly.  However, when I
attempt to link libavformat.a and libavcodec.a into my Xcode project I
receive the following error:

ld: in /Users/gomes/ffmpeg_ios/armv7/lib/libavcodec.a(mpegvideo_neon.o), in
section __TEXT,__text reloc 0: R_ABS reloc but no absolute symbol at target
address for architecture armv7

clang: error: linker command failed with exit code 1 (use -v to see
invocation)

Any ideas for getting this to work with assembly optimizations?
Thanks,
Ryan

Problematic Configuration:

./configure --prefix=armv7 --disable-ffmpeg --disable-ffplay
--disable-ffprobe --disable-doc --disable-ffserver --enable-avresample
--enable-cross-compile
--sysroot="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk"
--target-os=darwin
--cc="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc"
--extra-cflags="-arch armv7 -mfpu=neon -miphoneos-version-min=6.0"
--extra-ldflags="-arch armv7 -isysroot
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk
-miphoneos-version-min=6.0" --arch=arm --cpu=cortex-a9 --enable-pic
--disable-bzlib --disable-zlib --enable-asm

I can reproduce full text output if necessary (omitted here due to space
limitations.)


More information about the ffmpeg-user mailing list