Fraunhofer-IIS / mpeghdec

The Fraunhofer MPEG-H decoder (mpeghdec) is a C/C++ implementation of the MPEG-H Audio standard as defined in ISO/IEC 23008-3:2022
Other
61 stars 7 forks source link

Android build issue #1

Closed mdjp closed 1 year ago

mdjp commented 1 year ago

When trying to build for Android on an M2 mac I get the following errors at the build stage. Have you come across this before?

(configured with : cmake -S mpeghdec -B build_android -DCMAKE_TOOLCHAIN_FILE=/Users/mattp/Library/Android/sdk/ndk/25.2.9519653/build/cmake/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release)

`rd019200:mpeghdec mattp$ cmake --build build_android -- ANDROID_PLATFORM not set. Defaulting to minimum supported version 21. -- Configuring done (0.5s) -- Generating done (0.1s) -- Build files have been written to: /Users/mattp/Desktop/MPEG-H Development/mpeghdec/build_android [ 1%] Building CXX object src/CMakeFiles/MpeghDec.dir/libMpeghDec/src/aacdecoder.cpp.o In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.cpp:135: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.h:94: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/common_fix.h:301: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/clz.h:98: /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/arm/clz_arm.h:128:27: error: predicated instructions must be in IT block asm("subs %0, %1, #0 \n\t" ^

:2:2: note: instantiated into assembly here mvnlt r2, r2 ^ In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.cpp:135: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.h:94: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/common_fix.h:301: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/clz.h:98: /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/arm/clz_arm.h:129:27: error: predicated instructions must be in IT block "mvnlt %0, %0 \n\t" ^ :3:2: note: instantiated into assembly here clzne r2, r2 ^ In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.cpp:135: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.h:94: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/common_fix.h:301: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/clz.h:98: /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/arm/clz_arm.h:130:27: error: predicated instructions must be in IT block "clzne %0, %0 \n\t" ^ :4:2: note: instantiated into assembly here subne r2, r2, #1 ^ In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.cpp:135: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.h:94: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/common_fix.h:301: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/clz.h:98: /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/arm/clz_arm.h:128:27: error: predicated instructions must be in IT block asm("subs %0, %1, #0 \n\t" ^ :2:2: note: instantiated into assembly here mvnlt r2, r2 ^ In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.cpp:135: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.h:94: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/common_fix.h:301: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/clz.h:98: /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/arm/clz_arm.h:129:27: error: predicated instructions must be in IT block "mvnlt %0, %0 \n\t" ^ :3:2: note: instantiated into assembly here clzne r2, r2 ^ In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.cpp:135: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.h:94: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/common_fix.h:301: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/clz.h:98: /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/arm/clz_arm.h:130:27: error: predicated instructions must be in IT block "clzne %0, %0 \n\t" ^ :4:2: note: instantiated into assembly here subne r2, r2, #1 ^ In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.cpp:135: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.h:94: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/common_fix.h:301: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/clz.h:98: /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/arm/clz_arm.h:128:27: error: predicated instructions must be in IT block asm("subs %0, %1, #0 \n\t" ^ :2:2: note: instantiated into assembly here mvnlt r2, r2 ^ In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.cpp:135: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.h:94: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/common_fix.h:301: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/clz.h:98: /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/arm/clz_arm.h:129:27: error: predicated instructions must be in IT block "mvnlt %0, %0 \n\t" ^ :3:2: note: instantiated into assembly here clzne r2, r2 ^ In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.cpp:135: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.h:94: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/common_fix.h:301: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/clz.h:98: /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/arm/clz_arm.h:130:27: error: predicated instructions must be in IT block "clzne %0, %0 \n\t" ^ :4:2: note: instantiated into assembly here subne r2, r2, #1 ^ In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.cpp:135: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.h:94: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/common_fix.h:301: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/clz.h:98: /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/arm/clz_arm.h:128:27: error: predicated instructions must be in IT block asm("subs %0, %1, #0 \n\t" ^ :2:2: note: instantiated into assembly here mvnlt r3, r3 ^ In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.cpp:135: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.h:94: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/common_fix.h:301: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/clz.h:98: /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/arm/clz_arm.h:129:27: error: predicated instructions must be in IT block "mvnlt %0, %0 \n\t" ^ :3:2: note: instantiated into assembly here clzne r3, r3 ^ In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.cpp:135: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libMpeghDec/src/aacdecoder.h:94: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/common_fix.h:301: In file included from /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/clz.h:98: /Users/mattp/Desktop/MPEG-H Development/mpeghdec/mpeghdec/src/libFDK/include/arm/clz_arm.h:130:27: error: predicated instructions must be in IT block "clzne %0, %0 \n\t" ^ :4:2: note: instantiated into assembly here subne r3, r3, #1 ^ 12 errors generated. make[2]: *** [src/CMakeFiles/MpeghDec.dir/libMpeghDec/src/aacdecoder.cpp.o] Error 1 make[1]: *** [src/CMakeFiles/MpeghDec.dir/all] Error 2 make: *** [all] Error 2 rd019200:mpeghdec mattp$ `
mhildenbrand-iis commented 1 year ago

Thumb mode is not supported. Does it work when setting -DANDROID_FORCE_ARM_BUILD=ON?

mdjp commented 1 year ago

Yes, that works fine. thanks for the quick response!

mhildenbrand-iis commented 1 year ago

Glad it works. Seems we forgot to mention this in the build instructions on the wiki pages.