#7130: Android compilation broken with FFmpeg 3.4.2 -----------------------------------+--------------------------------------- Reporter: donturner | Type: defect Status: new | Priority: normal Component: avcodec | Version: unspecified Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -----------------------------------+--------------------------------------- Summary of the bug:
When compiling FFmpeg 3.4.2 for Android using the latest version of the Android NDK (16.1.4479499) the following error is produced: libavcodec/aaccoder.c: In function 'search_for_ms': libavcodec/aaccoder.c:803:25: error: expected identifier or '(' before numeric constant int B0 = 0, B1 = 0; How to reproduce: - Download the Android NDK from: https://developer.android.com/ndk/downloads/index.html - Set an environment variable ANDROID_NDK to the NDK root directory - Download FFmpeg 3.4.2 source - Use the following bash script to configure the build: #!/bin/bash PLATFORM=${ANDROID_NDK}/platforms/android-16/arch-arm ./configure \ --prefix=build/armeabi-v7a \ --target-os=linux \ --arch=arm \ --cc=${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin- x86_64/bin/arm-linux-androideabi-gcc \ --nm=${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin- x86_64/bin/arm-linux-androideabi-nm \ --strip=${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.9/prebuilt /darwin-x86_64/bin/arm-linux-androideabi-strip \ --cross-prefix=arm-linux-androideabi- \ --extra-libs="-lgcc" \ --sysroot=${ANDROID_NDK}/sysroot \ --extra-cflags="-I${ANDROID_NDK}/sysroot/usr/include/arm-linux- androideabi" \ --extra-ldflags="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib -lc -lm -ldl -llog" \ --enable-cross-compile \ --enable-small \ --disable-programs \ --disable-doc \ --enable-shared \ --disable-static Then execute: make Expected outcome: FFmpeg compiles without error Actual outcome: The following error is produced: libavcodec/aaccoder.c: In function 'search_for_ms': libavcodec/aaccoder.c:803:25: error: expected identifier or '(' before numeric constant int B0 = 0, B1 = 0; The problem seems to be a name clash with #define B0 in $ANDROID_NDK/sysroot/usr/include/asm-generic/termbits.h Here's a blog post from someone experiencing the same issue: https://medium.com/@piyush1995bhandari/cross-compiling-ffmpeg-for-android- 545a1cfca31e -- Ticket URL: <https://trac.ffmpeg.org/ticket/7130> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker _______________________________________________ FFmpeg-trac mailing list FFmpeg-trac@avcodec.org http://ffmpeg.org/mailman/listinfo/ffmpeg-trac