[Libav-user] Build tag n2.4 for armv7 with --disable-armv6 complaints link error

Zhang Rui bbcallen at gmail.com
Thu Sep 18 20:12:01 CEST 2014


-------------------------
ffmpeg: tag n2.4 (ace90ee265)
target: armv7 (iOS)
effected option: --disable-armv6

-------------------------
xcode 5.1.1 complaints as below:

Undefined symbols for architecture armv7:
  "_ff_startcode_find_candidate_armv6", referenced from:
      _ff_h264dsp_init_arm in libIJKMediaPlayer.a(h264dsp_init_arm.o)
      _ff_vc1dsp_init_arm in libIJKMediaPlayer.a(vc1dsp_init_arm.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

-------------------------
Possibly caused by this commit:
1e519b9d407fd35538b8d4dfdc723448355e9fe1

avutil: turn arm setend into a cpuflag

http://git.videolan.org/?p=ffmpeg.git;a=blobdiff;f=libavutil/arm/cpu.h;h=9b3b6ff58b7c3a130abf75a46c2dff82216ebd22;hp=f056a91ca56d802ff4ad45142150891065a828f1;hb=1e519b9d407fd35538b8d4dfdc723448355e9fe1;hpb=9f61d6d8fb658ec5156f323d5c2264de5383b951

-------------------------
Work around:
Link error can be fixed by --enable-armv6 or revert 1e519b9d, but I
don't think neither is the best idea.

-------------------------
Here is my build env:

$ xcrun --sdk iphoneos clang --version
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.3.0
Thread model: posix

And build scripts:

https://github.com/bbcallen/ijkplayer/tree/b0203e5f1b6ead869d17136f067efad54646b98e

-------------------------
And my config line: (from config.h with --disable-armv6)

#define FFMPEG_CONFIGURATION "--disable-gpl --enable-version3
--disable-nonfree --enable-runtime-cpudetect --disable-gray
--disable-swscale-alpha --disable-programs --disable-ffmpeg
--disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc
--disable-htmlpages --disable-manpages --disable-podpages
--disable-txtpages --disable-avdevice --enable-avcodec
--enable-avformat --enable-avutil --enable-swresample --enable-swscale
--disable-postproc --disable-avfilter --disable-avresample
--enable-network --disable-dxva2 --disable-vaapi --disable-vda
--disable-vdpau --disable-encoders --disable-decoders
--enable-decoder=aac --enable-decoder=aac_latm --enable-decoder=ac3
--enable-decoder=flv --enable-decoder=h263 --enable-decoder=h263i
--enable-decoder=h263p --enable-decoder=h264 --enable-decoder='mp3*'
--enable-decoder=vc1 --enable-decoder=vorbis --enable-decoder=vp6
--enable-decoder=vp6a --enable-decoder=vp6f --enable-decoder=vp8
--enable-decoder=webp --disable-hwaccels --disable-muxers
--enable-muxer=mpegts --enable-muxer=mp4 --disable-demuxers
--enable-demuxer=aac --enable-demuxer=ac3 --enable-demuxer=concat
--enable-demuxer=data --enable-demuxer=flv --enable-demuxer=hls
--enable-demuxer=latm --enable-demuxer=loas --enable-demuxer=m4v
--enable-demuxer=mov --enable-demuxer=mp3 --enable-demuxer=mpegps
--enable-demuxer=mpegts --enable-demuxer=mpegvideo --disable-parsers
--enable-parser=aac --enable-parser=aac_latm --enable-parser=ac3
--enable-parser=h263 --enable-parser=h264 --enable-parser=vc1
--enable-parser=vorbis --enable-parser=vp8 --enable-parser=vp9
--enable-bsfs --disable-bsf=mjpeg2jpeg --disable-bsf=mjpeg2jpeg
--disable-bsf=mjpega_dump_header --disable-bsf=mov2textsub
--disable-bsf=text2movsub --enable-protocols --disable-protocol=bluray
--disable-protocol=ffrtmpcrypt --enable-protocol=ffrtmphttp
--disable-protocol=gopher --disable-protocol='librtmp*'
--disable-protocol=libssh --disable-protocol=mmsh
--disable-protocol=mmst --disable-protocol=pipe
--disable-protocol='rtmp*' --enable-protocol=rtmp
--enable-protocol=rtmpt --disable-protocol=rtp --disable-protocol=sctp
--disable-protocol=srtp --disable-protocol=unix --disable-devices
--disable-filters --disable-iconv --disable-armv5te --disable-armv6
--disable-armv6t2 --enable-cross-compile --disable-symver
--disable-stripping --arch=armv7 --target-os=darwin --enable-static
--disable-shared --enable-pic --enable-neon --enable-optimizations
--enable-debug --enable-small
--prefix=/Users/bbcallen/Workspace/bili/ios/ibiliplayer/contrib/ijkplayer/ios/build/ffmpeg-armv7/output
--cc='xcrun -sdk iphoneos clang' --extra-cflags=' -arch armv7
-miphoneos-version-min=5.1.1 ' --extra-cxxflags=' -arch armv7
-miphoneos-version-min=5.1.1 ' --extra-ldflags=' -arch armv7
-miphoneos-version-min=5.1.1 '"


More information about the Libav-user mailing list