Boost logo

Boost Users :

Subject: [Boost-users] [Boost.build] Building for ARM64
From: mefyl (mefyl_at_[hidden])
Date: 2015-01-13 07:15:39


Hi,

In my quest cross-compiling Boost.Context for ARM64, I encounter the following
problem (using develop since ARM64 support is not in 1.57):

$ ./bootstrap.sh --with-libraries=context
[...]
$ ./b2 -d2 -q toolset=clang architecture=arm abi=aapcs address-model=64
binary-format=mach-o
[...]
"clang++" -o "bin.v2/libs/system/build/clang-darwin-4.2.1/release/abi-
aapcs/address-model-64/architecture-arm/threading-multi/libboost_system.dylib"
-single_module -dynamiclib -install_name "libboost
_system.dylib" "bin.v2/libs/system/build/clang-darwin-4.2.1/release/abi-
aapcs/address-model-64/architecture-arm/threading-multi/error_code.o"

Despite asking for arm, the "-arch arm64" I would expect is not passed to
clang which thus compile to x86_64. However Boost.Context DOES understand I'm
targeting arm since it picks the right ASM file:

    "clang++" -x assembler-with-cpp -O3 -O3 -finline-functions -Wno-inline -
Wall -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_DYN_LINK=1 -
DBOOST_CONTEXT_DYN_LINK=1 -DBOOST_CONTEXT_SOURCE -DBOOST_SYSTEM_DYN_LINK=1 -
DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_THREAD_BUILD_DLL=1 -DBOOST_THREAD_POSIX -
DBOOST_THREAD_USE_DLL=1 -DNDEBUG -I"." -c -o "bin.v2/libs/context/build/clang-
darwin-4.2.1/release/abi-aapcs/address-model-64/architecture-arm/threading-
multi/asm/make_arm64_aapcs_macho_gas.o"
"libs/context/src/asm/make_arm64_aapcs_macho_gas.S"

Which yields assembly errors of course since "-arch arm64" is not passed.

Other sources seem to manage to build Boost for ARM64 using darwin toolset
forcing clang as the compiler and passing many additional options, but their
setup fails to build Boost.Context since it either picks the wrong ASM file,
either complains the platform is not supported.

Thanks in advance !

-- 
Quentin "mefyl" Hocquet
CTO @ infinit.io

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net