[FFmpeg-trac] #2890(build system:new): Compile ffmpeg for Android on OSX failes (ld)

FFmpeg trac at avcodec.org
Thu Aug 22 22:47:27 CEST 2013


#2890: Compile ffmpeg for Android on OSX failes (ld)
-------------------------------------+-------------------------------------
             Reporter:  fscz         |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  build        |                  Version:  git-
  system                             |  master
             Keywords:  build ld     |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 during compilation of libavutil

 following error shows up:

 LD      libavutil/libavutil.52.dylib
 /Users/fschuetz/tmp/ffmpeg/build/toolchain/bin/../lib/gcc/arm-linux-
 androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: -single_module:
 unknown option
 /Users/fschuetz/tmp/ffmpeg/build/toolchain/bin/../lib/gcc/arm-linux-
 androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: use the --help
 option for usage information
 collect2: ld returned 1 exit status
 make: *** [libavutil/libavutil.52.dylib] Error 1

 How to reproduce:
 checkout https://github.com/FFmpeg/FFmpeg

 build, using ndk9:
 ------------------
 #!/bin/bash


 ##CONFIGURATION ###################################################

 NDK=/opt/android-ndk-r9
 TARGET_OS=darwin
 BUILD=$(pwd)/build/dest
 TOOLCHAIN=$(pwd)/build/toolchain
 SYSROOT=$TOOLCHAIN/sysroot

 FFMPEG_FLAGS="--prefix=${BUILD} \
   --target-os=${TARGET_OS} \
   --arch=arm \
   --enable-thumb \
   --enable-cross-compile \
   --cross-prefix=arm-linux-androideabi- \
   --disable-programs \
   --disable-everything \
   --disable-asm \
   --disable-symver \
   --disable-doc \
   --disable-devices \
   --disable-bsfs \
   --disable-network \
   --enable-avdevice \
   --enable-avcodec \
   --enable-avutil \
   --enable-swresample \
   --enable-swscale \
   --enable-debug \
   --disable-postproc \
   --disable-avfilter \
   --enable-gpl \
   --enable-version3 \
   --enable-shared \
         --enable-static \
         --enable-rdft \
         --enable-ffmpeg \
         --enable-protocol=file
         --enable-parser=aac \
         --enable-parser=ac3 \
         --enable-parser=mpegaudio \
         --enable-demuxer=aac \
         --enable-demuxer=ac3 \
         --enable-demuxer=ape \
         --enable-demuxer=asf \
         --enable-demuxer=flac \
         --enable-demuxer=matroska_audio \
         --enable-demuxer=mp3 \
         --enable-demuxer=mpc \
         --enable-demuxer=mov \
         --enable-demuxer=mpc8 \
         --enable-demuxer=ogg \
         --enable-demuxer=tta \
         --enable-demuxer=wav \
         --enable-demuxer=wv \
         --enable-decoder=aac \
         --enable-decoder=ac3 \
         --enable-decoder=alac \
         --enable-decoder=ape \
         --enable-decoder=flac \
         --enable-decoder=mp1 \
         --enable-decoder=mp2 \
         --enable-decoder=mp3 \
         --enable-decoder=mpc7 \
         --enable-decoder=mpc8 \
         --enable-decoder=tta \
         --enable-decoder=vorbis \
         --enable-decoder=wavpack \
         --enable-decoder=wmav1 \
         --enable-decoder=wmav2 \
         --enable-decoder=pcm_alaw \
         --enable-decoder=pcm_dvd \
         --enable-decoder=pcm_f32be \
         --enable-decoder=pcm_f32le \
         --enable-decoder=pcm_f64be \
         --enable-decoder=pcm_f64le \
         --enable-decoder=pcm_s16be \
         --enable-decoder=pcm_s16le \
         --enable-decoder=pcm_s16le_planar \
         --enable-decoder=pcm_s24be \
         --enable-decoder=pcm_daud \
         --enable-decoder=pcm_s24le \
         --enable-decoder=pcm_s32be \
         --enable-decoder=pcm_s32le \
         --enable-decoder=pcm_s8 \
         --enable-decoder=pcm_u16be \
         --enable-decoder=pcm_u16le \
         --enable-decoder=pcm_u24be \
         --enable-decoder=pcm_u24le \
         --enable-decoder=rawvideo"

 ##END ###################################################



 $NDK/build/tools/make-standalone-toolchain.sh --toolchain=arm-linux-
 androideabi-4.6 --platform=android-14 --system=darwin-x86_64 --install-
 dir=$TOOLCHAIN

 export PATH=$TOOLCHAIN/bin:$PATH
 export CC=arm-linux-androideabi-gcc
 export LD=arm-linux-androideabi-ld
 export AR=arm-linux-androideabi-ar

 CFLAGS="-O3 -Wall -mthumb -pipe -fpic -fasm \
   -finline-limit=300 -ffast-math \
   -fstrict-aliasing -Werror=strict-aliasing \
   -fmodulo-sched -fmodulo-sched-allow-regmoves \
   -Wno-psabi -Wa,--noexecstack \
   -DANDROID -DNDEBUG"

 EXTRA_CFLAGS="-march=armv7-a -mthumb -mthumb-interwork -mfpu=neon -mfloat-
 abi=softfp -mvectorize-with-neon-quad"
 EXTRA_LDFLAGS="-Wl,--fix-cortex-a8"


 ./configure $FFMPEG_FLAGS --extra-cflags="$CFLAGS $EXTRA_CFLAGS" --extra-
 ldflags="$EXTRA_LDFLAGS"

 make clean
 make -j
 make install

 --------
 built on osx 10.8



 Patches should be submitted to the ffmpeg-devel mailing list and not this
 bug tracker.

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2890>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list