Giter Site home page Giter Site logo

Comments (13)

inetic avatar inetic commented on July 18, 2024

Hi Paul, there should be a line inside the build.log file starting with "Building with TOOLSET=...", what does it say in your case?

Also, what does 'uname -a' says?

from boost-for-android.

pflammertsma avatar pflammertsma commented on July 18, 2024

It uses NDK version 8e, but I'm afraid I'm away from the machine to give
you the exact output. I'll get back to you on that.
On Dec 17, 2013 7:48 PM, "Peter Jankuliak" [email protected] wrote:

Hi Paul, there should be a line inside the build.log file starting with
"Building with TOOLSET=...", what does it say in your case?

Also, what does 'uname -a' says?


Reply to this email directly or view it on GitHubhttps://github.com//issues/58#issuecomment-30778595
.

from boost-for-android.

pflammertsma avatar pflammertsma commented on July 18, 2024

Output of build.log:

Building with TOOLSET=gcc-androidR8e CXXPATH=../android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ CXXFLAGS=

uname -a:

Linux ubuntu 3.8.0-29-generic # 42~precise1-Ubuntu SMP Wed Aug 14 16:19:23 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Incidentally, I'm getting the same problem using cygwin, but since my configuration there is a bit more complex, it's probably easier to figure out what's going wrong on Ubuntu.

Would it make any difference to replace the execution of arm-linux-androideabi-g++ with its full path in user-config-boost-1_53_0.jam?

from boost-for-android.

pflammertsma avatar pflammertsma commented on July 18, 2024

I've gone ahead and given your suggestion in issue #27 a swing, but it appears that this gives the same problem.

I changed user-config-boost-1_53_0.jam to invoke arm-linux-androideabi-g++ with its absolute path on line 90. I've checked that the path is correct, and that the config is applied correctly into boost_1_53_0/tools/build/v2/user-config.jam.

This gives me:

error: toolset gcc initialization:
error: provided command 'arm-linux-androideabi-g++' not found
error: initialized from /home/paul/boost/Boost-for-Android/boost_1_53_0/tools/build/v2/user-config.jam:85

It however points to line 85, which is the androidR8b target. This is especially strange as the toolset is specifically set to:

TOOLSET=gcc-androidR8e

I went ahead and changed the entry on line 47 of user-config-boost-1_53_0.jam to use the absolute path as well.

Progress! It now gives the following output, which I'm still looking into:

gcc.compile.c++ bin.v2/libs/system/build/gcc-androidR8e/release/link-static/threading-multi/error_code.o
In file included from ./boost/config.hpp:40:0,
from ./boost/system/config.hpp:13,
from libs/system/src/error_code.cpp:18:
./boost/config/select_stdlib_config.hpp:18:21: fatal error: cstddef: No such file or directory compilation terminated.
"/home/paul/boost/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++" -ftemplate-depth-128 -D__arm__ -D_REENTRANT -D_GLIBCXX__PTHREADS -O3 -finline-functions -Wno-inline -Wall -pedantic -fexceptions -frtti -fpic -ffunction-sections -funwind-tables -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -I../android-ndk-r8e/platforms/android-9/arch-arm/usr/include -Wa,--noexecstack -DANDROID -D__ANDROID__ -DNDEBUG -O2 -g -I../android-ndk-r8e/sources/cxx-stl/gnu-libstdc++/4.6/include -I../android-ndk-r8e/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include -fvisibility=hidden -fvisibility-inlines-hidden -fdata-sections -pthread -DBOOST_ALL_NO_LIB=1 -DBOOST_SYSTEM_STATIC_LINK=1 -DNDEBUG -I"." -c -o "bin.v2/libs/system/build/gcc-androidR8e/release/link-static/threading-multi/error_code.o" "libs/system/src/error_code.cpp"

...failed gcc.compile.c++ bin.v2/libs/system/build/gcc-androidR8e/release/link-static/threading-multi/error_code.o...
...failed updating 1 target...
...updated 10 targets...
ERROR: Failed to build boost for android!

from boost-for-android.

pflammertsma avatar pflammertsma commented on July 18, 2024

It seems that the NDK include path isn't being set correctly. I believe that this may be related to the other path problems described in this issue.

from boost-for-android.

inetic avatar inetic commented on July 18, 2024

You're right, it's as if the jam script completely ignores the variables set inside build-boost.sh. I'm gonna make a guess, but try changing the shebang line (first line) in the build-boost.sh script to #!/bin/bash instead of #!/bin/sh

from boost-for-android.

pflammertsma avatar pflammertsma commented on July 18, 2024

I replaced the first line in both build-android.sh and build-common.sh with
#!/bin/bash, and I'm afraid it yields the same result, failing on "error:
provided command 'arm-linux-androideabi-g++' not found".

If you have any other suggestions, let me know!

On Sat, Dec 21, 2013 at 4:07 AM, Peter Jankuliak
[email protected]:

You're right, it's as if the script completely ignores the variables set
inside the script. I'm gonna make a wild guess, but try changing the
shebang line (first line) in the build-boost.sh script to #!/bin/bash
instead of #!/bin/sh


Reply to this email directly or view it on GitHubhttps://github.com//issues/58#issuecomment-31055453
.

from boost-for-android.

pflammertsma avatar pflammertsma commented on July 18, 2024

Your remark got me thinking, and I output what was being specified as PATH. The trouble was that I was providing a relative path to my AndroidNDK:

$ ./build-android.sh --with-libraries=chrono,program_options,system,thread ../android-ndk-r8e

Everything was instantly resolved by providing an absolute path:

$ ./build-android.sh --with-libraries=chrono,program_options,system,thread ~/boost/android-ndk-r8e

Perhaps you can add this as a remark in the Readme.md? I believe this is also the cause of issue #21 and #27.

from boost-for-android.

pflammertsma avatar pflammertsma commented on July 18, 2024

I'm no bash guru, but I believe that this may be resolved by adding the following to build-android.sh at line 163:

AndroidNDKRoot=`realpath $AndroidNDKRoot`
echo "Using AndroidNDKRoot = $AndroidNDKRoot"

(This follows the if statement for checking that an NDK path is specified.)

Unfortunately, realpath(3) isn't included on Debian systems by default, so it adds an additional dependency. Perhaps there's a better solution, for instance by making use of pwd?

from boost-for-android.

inetic avatar inetic commented on July 18, 2024

Happy to hear you've found the solution. I think I would prefer to use the pwd command to fix it as described in the link you posted. Would you like to make the fix? Me or someone else will then merge it. If not, I'll do it sometime after Christmas.

from boost-for-android.

pflammertsma avatar pflammertsma commented on July 18, 2024

I can take a look, but I'm not extremely familiar with bash or posix. If I
come up with anything, I'll let you know!

from boost-for-android.

inetic avatar inetic commented on July 18, 2024

Paul, in this commit I'm converting AndroidNDKRoot to absolute path. Could you pleas give it a go?

from boost-for-android.

pflammertsma avatar pflammertsma commented on July 18, 2024

Yes, that commit resolves the problem. Thanks!

from boost-for-android.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.