Re: [boost] [Boost-users] Need help with errors while building boost for clang on android NDK
On Wed, Sep 28, 2016 at 10:49 AM, Robert Dailey
On Mon, Sep 26, 2016 at 11:55 AM, Robert Dailey
wrote: On Mon, Sep 26, 2016 at 11:09 AM, Oliver Kowalke
wrote: 2016-09-26 17:57 GMT+02:00 Robert Dailey
: > clang-linux.compile.asm > > > bin.v2\libs\context\build\clang-linux-android\release\link-static\runtime-link-static\target-os-linux\threading-multi\asm\make_i386_ms_pe_gas.o > libs\\context\\src\\asm\\make_i386_ms_pe_gas.asm:30:1: error: unknown > directive > .def _make_fcontext; .scl 2; .type 32; .endef
you try to build for i386 instead arm
How can I make it use arm instead?
I assume you try to cross compile : http://www.boost.org/doc/libs/1_61_0/libs/context/doc/html/context/architect...
I am indeed trying to cross compile, however I am not familiar with b2 nor do I much care to learn it (since it's a means to an end for me to build boost).
Can you provide an example of how I can specify the documented settings to b2 for my build? Do I provide the values to those in my project-config file?
Would really love help with this guys. I literally can't find info on this anywhere else. Surely someone has had success getting 1.61 building with NDK + ARM + Clang.
I made a best-guess using the context cross compiling settings linked earlier. Does this seem correct? It doesn't build at the moment saying it can't find locale-related symbols. That doesn't help me at all so I guess I'm going to have to dig into the llvm STL code and find out what preprocessor flags I'm missing (assuming it's that simple). Also I still don't know how to specify 'ar' and 'ranlib' executables to boost from NDK.
using clang : android : $(androidNDKRoot)/toolchains/llvm/prebuilt/$(androidPlatform)/bin/clang++ : <compileflags>--sysroot=$(androidNDKRoot)/platforms/android-15/arch-arm <compileflags>-Os <compileflags>-fno-strict-aliasing <compileflags>-O2 <compileflags>-DNDEBUG <compileflags>-g <compileflags>-I$(androidNDKRoot)/sources/cxx-stl/llvm-libc++abi/libcxxabi/include <compileflags>-I$(androidNDKRoot)/sources/cxx-stl/llvm-libc++/libcxx/include <compileflags>-I$(androidNDKRoot)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a <compileflags>-I$(androidNDKRoot)/sources/android/support/include <compileflags>-DANDROID <compileflags>-D__ANDROID__ <compileflags>-D__arm__ <compileflags>-D_REENTRANT <architecture>arm <address-model>32 <binary-format>pe <abi>aapcs ;
FYI: I still haven't gotten this working. Sorry to keep bumping this thread but I have absolutely zero options yet. I need help from the boost developers at this point, I think.
On Tue, Oct 4, 2016 at 3:53 PM, Robert Dailey
FYI: I still haven't gotten this working.
Okay, this is third hand information but I believe that gnu STL on Android is not compliant. I know they are/were missing std::to_string, some other things. Its possible that its been updated. But maybe not, I just had a user with a build problem caused by gnu stdlib (or whatever its called). If you've exhausted all other options, try building with clang/llvm standard library instead.
On Tue, Oct 4, 2016 at 3:02 PM, Vinnie Falco
On Tue, Oct 4, 2016 at 3:53 PM, Robert Dailey
wrote: FYI: I still haven't gotten this working.
Okay, this is third hand information but I believe that gnu STL on Android is not compliant. I know they are/were missing std::to_string, some other things. Its possible that its been updated. But maybe not, I just had a user with a build problem caused by gnu stdlib (or whatever its called).
If you've exhausted all other options, try building with clang/llvm standard library instead.
I mentioned in my OP that I am trying with clang + llvm STL in NDK. I am, however, familiar with the issues you describe. But I've (hopefully) setup the bjam script to point to the LLVM version of STL. But the problem I'm facing now is the assembly part for boost context. Thank you for your response.
participants (2)
-
Robert Dailey
-
Vinnie Falco