Boost logo

Boost Users :

Subject: Re: [Boost-users] Need help with errors while building boost for clang on android NDK
From: Robert Dailey (rcdailey.lists_at_[hidden])
Date: 2016-09-28 11:49:46


On Mon, Sep 26, 2016 at 11:55 AM, Robert Dailey
<rcdailey.lists_at_[hidden]> wrote:
> On Mon, Sep 26, 2016 at 11:09 AM, Oliver Kowalke
> <oliver.kowalke_at_[hidden]> wrote:
>> 2016-09-26 17:57 GMT+02:00 Robert Dailey <rcdailey.lists_at_[hidden]>:
>>>
>>> >> > 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/architectures/crosscompiling.html
>
> 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
    ;


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