moritz-wundke / Boost-for-Android

Android port of Boost C++ Libraries
992 stars 479 forks source link

not building arm64-v8a #218

Open kagamikira opened 3 years ago

kagamikira commented 3 years ago

I'm building with r20b on macOS and it's building armv7 and x86 and x86_64 fine but no arm64 directory output

kagamikira commented 3 years ago

ps. in build directory there is arm64 but not in output

zacharyfmarion commented 5 months ago

Did you ever find a solution to this? I am getting an issue with basically any NDK or boost version on arm64-v8a, where it looks like there is invalid assembly code:

"/Users/zacharymarion/Library/Android/sdk/ndk/26.0.10792818/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang++" -x assembler-with-cpp -O3 -Wall -fvisibility=hidden -Wno-inline -fPIC -ffunction-sections -fdata-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wformat -Werror=format-security -frtti -fexceptions -DNDEBUG -g -Oz  -DBOOST_ALL_NO_LIB=1 -DBOOST_COBALT_USE_STD_PMR=1 -DBOOST_CONTEXT_SOURCE -DBOOST_DISABLE_ASSERTS -DNDEBUG -I"." -c -o "../build/build/arm64-v8a/boost/bin.v2/libs/context/build/clang-darwin-arm64v8a/release/link-static/target-os-android/threading-multi/visibility-hidden/asm/make_arm64_aapcs_macho_gas.o" "libs/context/src/asm/make_arm64_aapcs_macho_gas.S"

libs/context/src/asm/make_arm64_aapcs_macho_gas.S:59:21: error: unexpected token in argument list
    ; shift address in x0 (allocated stack) to lower 16 byte boundary
                    ^
libs/context/src/asm/make_arm64_aapcs_macho_gas.S:62:21: error: unexpected token in argument list
    ; reserve space for context-data on context-stack
                    ^
libs/context/src/asm/make_arm64_aapcs_macho_gas.S:65:17: error: unexpected token in argument list
    ; third arg of make_fcontext() == address of context-function
                ^
libs/context/src/asm/make_arm64_aapcs_macho_gas.S:66:21: error: unexpected token in argument list
    ; store address as a PC to jump in
                    ^
libs/context/src/asm/make_arm64_aapcs_macho_gas.S:71:20: error: unexpected token in argument list
    ; save address of finish as return-address for context-function
                   ^
libs/context/src/asm/make_arm64_aapcs_macho_gas.S:72:15: error: unexpected token in argument list
    ; will be entered after context-function returns (LR register)
              ^
libs/context/src/asm/make_arm64_aapcs_macho_gas.S:75:29: error: unexpected token in argument list
    ret lr ; return pointer to context-data (x0)
                            ^
libs/context/src/asm/make_arm64_aapcs_macho_gas.S:78:17: error: unexpected token in argument list
    ; exit code is zero
                ^
libs/context/src/asm/make_arm64_aapcs_macho_gas.S:80:7: error: unrecognized instruction mnemonic, did you mean: ext, extr?
    ; exit application

This is on an M1 machine. @moritz-wundke or @pelya do you have any clue what might be going on here?

Arrivederci commented 2 months ago

Did you ever find a solution to this? I am getting an issue with basically any NDK or boost version on arm64-v8a, where it looks like there is invalid assembly code:

"/Users/zacharymarion/Library/Android/sdk/ndk/26.0.10792818/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang++" -x assembler-with-cpp -O3 -Wall -fvisibility=hidden -Wno-inline -fPIC -ffunction-sections -fdata-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wformat -Werror=format-security -frtti -fexceptions -DNDEBUG -g -Oz  -DBOOST_ALL_NO_LIB=1 -DBOOST_COBALT_USE_STD_PMR=1 -DBOOST_CONTEXT_SOURCE -DBOOST_DISABLE_ASSERTS -DNDEBUG -I"." -c -o "../build/build/arm64-v8a/boost/bin.v2/libs/context/build/clang-darwin-arm64v8a/release/link-static/target-os-android/threading-multi/visibility-hidden/asm/make_arm64_aapcs_macho_gas.o" "libs/context/src/asm/make_arm64_aapcs_macho_gas.S"

libs/context/src/asm/make_arm64_aapcs_macho_gas.S:59:21: error: unexpected token in argument list
    ; shift address in x0 (allocated stack) to lower 16 byte boundary
                    ^
libs/context/src/asm/make_arm64_aapcs_macho_gas.S:62:21: error: unexpected token in argument list
    ; reserve space for context-data on context-stack
                    ^
libs/context/src/asm/make_arm64_aapcs_macho_gas.S:65:17: error: unexpected token in argument list
    ; third arg of make_fcontext() == address of context-function
                ^
libs/context/src/asm/make_arm64_aapcs_macho_gas.S:66:21: error: unexpected token in argument list
    ; store address as a PC to jump in
                    ^
libs/context/src/asm/make_arm64_aapcs_macho_gas.S:71:20: error: unexpected token in argument list
    ; save address of finish as return-address for context-function
                   ^
libs/context/src/asm/make_arm64_aapcs_macho_gas.S:72:15: error: unexpected token in argument list
    ; will be entered after context-function returns (LR register)
              ^
libs/context/src/asm/make_arm64_aapcs_macho_gas.S:75:29: error: unexpected token in argument list
    ret lr ; return pointer to context-data (x0)
                            ^
libs/context/src/asm/make_arm64_aapcs_macho_gas.S:78:17: error: unexpected token in argument list
    ; exit code is zero
                ^
libs/context/src/asm/make_arm64_aapcs_macho_gas.S:80:7: error: unrecognized instruction mnemonic, did you mean: ext, extr?
    ; exit application

This is on an M1 machine. @moritz-wundke or @pelya do you have any clue what might be going on here?

same issue

ashu879 commented 3 weeks ago

I am running into same issue, it builds for armeabi-v7a, x86 and x86_64 but fails for arm64-v8a which is most widely used architecture.