Skip to content

Android dumpster fire, again #310

Description

@mosra

As reported on Gitter by @luigytkd, Magnum is unable to build under Android NDK r19 due to erros like

In file included from /home/lrib/Workspaces/AndroidStudioProjects/magnum/magnum/src/Magnum/Math/Vector.h:32:
/home/lrib/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/cmath:317:9: error: no member named 'isinf' in the global namespace
using ::isinf;

Googling the above doesn't really show anything obvious. NDK r16 is known to work (it's run on Travis CI), NDK r17 (running locally on Arch) works as well. Didn't test with r18 as there's no AUR package. However, when trying to reproduce with r19, I get this during the initial CMake run:

/opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android --gcc-toolchain=/opt/android-ndk/toolchains//prebuilt/linux-x86_64 --sysroot=/opt/android-ndk/platforms/android-22/arch-arm64  -funwind-tables -no-canonical-prefixes -D__ANDROID_API__=22 -fexceptions -frtti  -g  -fPIE -pie -Wl,--gc-sections CMakeFiles/cmTC_60666.dir/testCXXCompiler.cxx.o  -o cmTC_60666  "/opt/android-ndk/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a" "/opt/android-ndk/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++abi.a" -latomic -nostdlib++ && :
    /..//bin/ld: unrecognised emulation mode: aarch64linux
    Supported emulations: elf_x86_64 elf32_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om i386pep i386pe
    clang++: error: linker command failed with exit code 1 (use -v to see invocation)

Questions on SO (from end of January) are without answers. Possibly related solution is here, but AFAIK there's no way to force the toolchain path to CMake.

Desperately looking into the CMake bug tracker, I found these two very concerning issues:

Current solution is to go back before r19. r17 (and r16) is known to work well, r18 might work too.

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status
    Done

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions