Discussion:
[Boost-users] Boost test failures on arm platform
Carlos Ferreira
2016-10-10 10:52:47 UTC
Permalink
Hello!

I'm cross-compiling Boost to an arm platform and because of that,
boost fails to execute the cxx11_* tests and then it outputs the
information that the compiler does not support a series of cxx11_*
capabilities.

Is there a way to disable these library tests, when cross-compiling?
--
Carlos Miguel Ferreira
Researcher at Telecommunications Institute
Aveiro - Portugal
Work E-mail - ***@av.it.pt
Skype & GTalk -> ***@gmail.com
LinkedIn -> http://www.linkedin.com/in/carlosmferreira
Carlos Ferreira
2016-10-10 11:37:32 UTC
Permalink
It seems that, because i'm cross-compiling, the boost building system
is trying to check if the compiler supports all of those c++11
features.
The thing is, in order to do that, the build system compiles a sheet of code.
One of those files is this one:
boost_1_62_0/libs/rational/test/constexpr_test.cpp

Then, the build system does what no one would think when using a
cross-compiler... it tries to execute the resultant binary on the host
computer... It obviously fails. That is happening for all of those
cxx11_ tests.
Because of this, I'm unable to build Boost.Fiber for my Raspberries
with OpenWRT.

Can anyone help me with a solution?
Post by Carlos Ferreira
Hello!
I'm cross-compiling Boost to an arm platform and because of that,
boost fails to execute the cxx11_* tests and then it outputs the
information that the compiler does not support a series of cxx11_*
capabilities.
Is there a way to disable these library tests, when cross-compiling?
--
Carlos Miguel Ferreira
Researcher at Telecommunications Institute
Aveiro - Portugal
LinkedIn -> http://www.linkedin.com/in/carlosmferreira
--
Carlos Miguel Ferreira
Researcher at Telecommunications Institute
Aveiro - Portugal
Work E-mail - ***@av.it.pt
Skype & GTalk -> ***@gmail.com
LinkedIn -> http://www.linkedin.com/in/carlosmferreira
Oliver Kowalke
2016-10-10 12:35:32 UTC
Permalink
Post by Carlos Ferreira
Then, the build system does what no one would think when using a
cross-compiler... it tries to execute the resultant binary on the host
computer... It obviously fails. That is happening for all of those
cxx11_ tests.
Because of this, I'm unable to build Boost.Fiber for my Raspberries
with OpenWRT.
Can anyone help me with a solution?
you could remove the feature checks in <boost>/libs/fiber/build/Jamfile.v2
Carlos Ferreira
2016-10-11 15:20:28 UTC
Permalink
Thank you Oliver of the help.

Unfortunatly, those dependencies aren't the only ones being executed.
There is another dependency that is being executed, which is:
"lockfree boost::atomic_flag : no"
This dependency is being executed by Boost.Thread.

Oliver, does Fiber through Context requires that flag? Because, I can
build both Thread And Context, but I still cant build Fiber, even
though I removed all of the Fiber requirements.

PS: I have opened a tick here: https://svn.boost.org/trac/boost/ticket/12520
Post by Oliver Kowalke
Post by Carlos Ferreira
Then, the build system does what no one would think when using a
cross-compiler... it tries to execute the resultant binary on the host
computer... It obviously fails. That is happening for all of those
cxx11_ tests.
Because of this, I'm unable to build Boost.Fiber for my Raspberries
with OpenWRT.
Can anyone help me with a solution?
you could remove the feature checks in <boost>/libs/fiber/build/Jamfile.v2
_______________________________________________
Boost-users mailing list
http://lists.boost.org/mailman/listinfo.cgi/boost-users
--
Carlos Miguel Ferreira
Researcher at Telecommunications Institute
Aveiro - Portugal
Work E-mail - ***@av.it.pt
Skype & GTalk -> ***@gmail.com
LinkedIn -> http://www.linkedin.com/in/carlosmferreira
Carlos Ferreira
2016-10-11 15:27:44 UTC
Permalink
I have removed the "lockfree boost::atomic_flag : no" from Thread but
it had no effect.

Oliver, besides the Jamfile.v2 required dependencies, is there
anything else that might be preventing Boost.Fiber from compiling?
Post by Carlos Ferreira
Thank you Oliver of the help.
Unfortunatly, those dependencies aren't the only ones being executed.
"lockfree boost::atomic_flag : no"
This dependency is being executed by Boost.Thread.
Oliver, does Fiber through Context requires that flag? Because, I can
build both Thread And Context, but I still cant build Fiber, even
though I removed all of the Fiber requirements.
PS: I have opened a tick here: https://svn.boost.org/trac/boost/ticket/12520
Post by Oliver Kowalke
Post by Carlos Ferreira
Then, the build system does what no one would think when using a
cross-compiler... it tries to execute the resultant binary on the host
computer... It obviously fails. That is happening for all of those
cxx11_ tests.
Because of this, I'm unable to build Boost.Fiber for my Raspberries
with OpenWRT.
Can anyone help me with a solution?
you could remove the feature checks in <boost>/libs/fiber/build/Jamfile.v2
_______________________________________________
Boost-users mailing list
http://lists.boost.org/mailman/listinfo.cgi/boost-users
--
Carlos Miguel Ferreira
Researcher at Telecommunications Institute
Aveiro - Portugal
LinkedIn -> http://www.linkedin.com/in/carlosmferreira
--
Carlos Miguel Ferreira
Researcher at Telecommunications Institute
Aveiro - Portugal
Work E-mail - ***@av.it.pt
Skype & GTalk -> ***@gmail.com
LinkedIn -> http://www.linkedin.com/in/carlosmferreira
Carlos Ferreira
2016-10-11 15:34:56 UTC
Permalink
Ok, I believe I have found the problem.
I remembered that Fiber requires the flag "-fsplit-stack". I added it
and the compiler just throwed this error.

cc1plus: error: '-fsplit-stack' is not supported by this compiler configuration

Olive, I believe this is the reason why Boost Builder is not building
Fiber. Can you confirm this, please?
Post by Carlos Ferreira
I have removed the "lockfree boost::atomic_flag : no" from Thread but
it had no effect.
Oliver, besides the Jamfile.v2 required dependencies, is there
anything else that might be preventing Boost.Fiber from compiling?
Post by Carlos Ferreira
Thank you Oliver of the help.
Unfortunatly, those dependencies aren't the only ones being executed.
"lockfree boost::atomic_flag : no"
This dependency is being executed by Boost.Thread.
Oliver, does Fiber through Context requires that flag? Because, I can
build both Thread And Context, but I still cant build Fiber, even
though I removed all of the Fiber requirements.
PS: I have opened a tick here: https://svn.boost.org/trac/boost/ticket/12520
Post by Oliver Kowalke
Post by Carlos Ferreira
Then, the build system does what no one would think when using a
cross-compiler... it tries to execute the resultant binary on the host
computer... It obviously fails. That is happening for all of those
cxx11_ tests.
Because of this, I'm unable to build Boost.Fiber for my Raspberries
with OpenWRT.
Can anyone help me with a solution?
you could remove the feature checks in <boost>/libs/fiber/build/Jamfile.v2
_______________________________________________
Boost-users mailing list
http://lists.boost.org/mailman/listinfo.cgi/boost-users
--
Carlos Miguel Ferreira
Researcher at Telecommunications Institute
Aveiro - Portugal
LinkedIn -> http://www.linkedin.com/in/carlosmferreira
--
Carlos Miguel Ferreira
Researcher at Telecommunications Institute
Aveiro - Portugal
LinkedIn -> http://www.linkedin.com/in/carlosmferreira
--
Carlos Miguel Ferreira
Researcher at Telecommunications Institute
Aveiro - Portugal
Work E-mail - ***@av.it.pt
Skype & GTalk -> ***@gmail.com
LinkedIn -> http://www.linkedin.com/in/carlosmferreira
Oliver Kowalke
2016-10-11 15:46:40 UTC
Permalink
'-fsplit-stack' is set automatically if you compile boost with property
'segmented-stacks=on' (on demand growing stacks) - but it is not required
per default
Carlos Ferreira
2016-10-11 16:45:12 UTC
Permalink
Anyway, it did not work :/
I'm still unable to detect why Boost.Fiber is not getting compiled by
the Boost system, even though --with-fiber is clearly stated.
Boost.Thread, boost.Context and all the other boost libs dependencies are built.
Post by Oliver Kowalke
'-fsplit-stack' is set automatically if you compile boost with property
'segmented-stacks=on' (on demand growing stacks) - but it is not required
per default
_______________________________________________
Boost-users mailing list
http://lists.boost.org/mailman/listinfo.cgi/boost-users
--
Carlos Miguel Ferreira
Researcher at Telecommunications Institute
Aveiro - Portugal
Work E-mail - ***@av.it.pt
Skype & GTalk -> ***@gmail.com
LinkedIn -> http://www.linkedin.com/in/carlosmferreira
Oliver Kowalke
2016-10-11 17:51:07 UTC
Permalink
Post by Carlos Ferreira
Anyway, it did not work :/
I'm still unable to detect why Boost.Fiber is not getting compiled by
the Boost system, even though --with-fiber is clearly stated.
Boost.Thread, boost.Context and all the other boost libs dependencies are built.
could you post the complete output of 'b2 toolset=gcc architecture=arm
address-model=32 binary-format=elf abi=aapcs --with-fiber'
Carlos Ferreira
2016-10-11 22:03:58 UTC
Permalink
Ok its here!
Bear in mind that I have used the OpenWRT cross compiler, so there is
a bit of verbosity.
I have used my dropbox in order to share the info, to avoid spamming
the mailing list.

https://dl.dropboxusercontent.com/u/5802501/BoostFiber_crossCompiling.txt
Post by Oliver Kowalke
Post by Carlos Ferreira
Anyway, it did not work :/
I'm still unable to detect why Boost.Fiber is not getting compiled by
the Boost system, even though --with-fiber is clearly stated.
Boost.Thread, boost.Context and all the other boost libs dependencies are built.
could you post the complete output of 'b2 toolset=gcc architecture=arm
address-model=32 binary-format=elf abi=aapcs --with-fiber'
_______________________________________________
Boost-users mailing list
http://lists.boost.org/mailman/listinfo.cgi/boost-users
--
Carlos Miguel Ferreira
Researcher at Telecommunications Institute
Aveiro - Portugal
Work E-mail - ***@av.it.pt
Skype & GTalk -> ***@gmail.com
LinkedIn -> http://www.linkedin.com/in/carlosmferreira
Oliver Kowalke
2016-10-12 05:56:39 UTC
Permalink
Post by Carlos Ferreira
Ok its here!
Bear in mind that I have used the OpenWRT cross compiler, so there is
a bit of verbosity.
I have used my dropbox in order to share the info, to avoid spamming
the mailing list.
https://dl.dropboxusercontent.com/u/5802501/BoostFiber_crossCompiling.txt
Post by Oliver Kowalke
Post by Carlos Ferreira
Anyway, it did not work :/
I'm still unable to detect why Boost.Fiber is not getting compiled by
the Boost system, even though --with-fiber is clearly stated.
Boost.Thread, boost.Context and all the other boost libs dependencies
are
Post by Oliver Kowalke
Post by Carlos Ferreira
built.
could you post the complete output of 'b2 toolset=gcc architecture=arm
address-model=32 binary-format=elf abi=aapcs --with-fiber'
seams to me that boost.fiber is already build and installed

btw, you have to build boost.context too (as a dependency of boost.fiber):
'b2 toolset=gcc architecture=arm> address-model=32 binary-format=elf
abi=aapcs --with-fiber --with-context'
Carlos Ferreira
2016-10-12 08:51:12 UTC
Permalink
I have tried everything. I have even selected all of the libraries and
still, Fiber is not getting compiled. No fiber shared object is
generated. All the others are.
Post by Oliver Kowalke
Post by Carlos Ferreira
Ok its here!
Bear in mind that I have used the OpenWRT cross compiler, so there is
a bit of verbosity.
I have used my dropbox in order to share the info, to avoid spamming
the mailing list.
https://dl.dropboxusercontent.com/u/5802501/BoostFiber_crossCompiling.txt
Post by Oliver Kowalke
Post by Carlos Ferreira
Anyway, it did not work :/
I'm still unable to detect why Boost.Fiber is not getting compiled by
the Boost system, even though --with-fiber is clearly stated.
Boost.Thread, boost.Context and all the other boost libs dependencies
are
built.
could you post the complete output of 'b2 toolset=gcc architecture=arm
address-model=32 binary-format=elf abi=aapcs --with-fiber'
seams to me that boost.fiber is already build and installed
'b2 toolset=gcc architecture=arm> address-model=32 binary-format=elf
abi=aapcs --with-fiber --with-context'
_______________________________________________
Boost-users mailing list
http://lists.boost.org/mailman/listinfo.cgi/boost-users
--
Carlos Miguel Ferreira
Researcher at Telecommunications Institute
Aveiro - Portugal
Work E-mail - ***@av.it.pt
Skype & GTalk -> ***@gmail.com
LinkedIn -> http://www.linkedin.com/in/carlosmferreira
Oliver Kowalke
2016-10-12 09:56:43 UTC
Permalink
Post by Carlos Ferreira
I have tried everything. I have even selected all of the libraries and
still, Fiber is not getting compiled. No fiber shared object is
generated. All the others are.
but the output does not show an error - stange
Carlos Ferreira
2016-10-12 13:09:32 UTC
Permalink
And that is what keeps me puzzling... also, I do not see any attempt
by the building system, to compile any of the Fiber modules.
Why is this not happening?
Is there some process which could prevent the Fiber modules from being
compiled? Some dependency or architecture requirement?

The only alternative that I remember is, to completly ignore the Boost
building system and create a makefile to build boost, while checking
the requirements in another way.
Post by Oliver Kowalke
Post by Carlos Ferreira
I have tried everything. I have even selected all of the libraries and
still, Fiber is not getting compiled. No fiber shared object is
generated. All the others are.
but the output does not show an error - stange
_______________________________________________
Boost-users mailing list
http://lists.boost.org/mailman/listinfo.cgi/boost-users
--
Carlos Miguel Ferreira
Researcher at Telecommunications Institute
Aveiro - Portugal
Work E-mail - ***@av.it.pt
Skype & GTalk -> ***@gmail.com
LinkedIn -> http://www.linkedin.com/in/carlosmferreira
Oliver Kowalke
2016-10-12 14:20:52 UTC
Permalink
I see that -std=c++11 or -std=c++14 is missing.
Try: 'b2 toolset=gcc cxxflags="-std=c++11"architecture=arm address-model=32
binary-format=elf abi=aapcs --with-fiber --with-context'
and post the complete output
Carlos Ferreira
2016-10-12 18:18:49 UTC
Permalink
It's there. If you search for " cxxflags='-std=c++14' " you will see it.
I remembered that little detail. Still, there should be an error when
trying to build Fiber or other library that requires c++14 or c++11.
Post by Oliver Kowalke
I see that -std=c++11 or -std=c++14 is missing.
Try: 'b2 toolset=gcc cxxflags="-std=c++11"architecture=arm address-model=32
binary-format=elf abi=aapcs --with-fiber --with-context'
and post the complete output
_______________________________________________
Boost-users mailing list
http://lists.boost.org/mailman/listinfo.cgi/boost-users
--
Carlos Miguel Ferreira
Researcher at Telecommunications Institute
Aveiro - Portugal
Work E-mail - ***@av.it.pt
Skype & GTalk -> ***@gmail.com
LinkedIn -> http://www.linkedin.com/in/carlosmferreira
Carlos Ferreira
2016-10-13 08:47:44 UTC
Permalink
Oliver, I don't know if you noticed, but I have updated the text file
that I previously shared.
Post by Carlos Ferreira
It's there. If you search for " cxxflags='-std=c++14' " you will see it.
I remembered that little detail. Still, there should be an error when
trying to build Fiber or other library that requires c++14 or c++11.
Post by Oliver Kowalke
I see that -std=c++11 or -std=c++14 is missing.
Try: 'b2 toolset=gcc cxxflags="-std=c++11"architecture=arm address-model=32
binary-format=elf abi=aapcs --with-fiber --with-context'
and post the complete output
_______________________________________________
Boost-users mailing list
http://lists.boost.org/mailman/listinfo.cgi/boost-users
--
Carlos Miguel Ferreira
Researcher at Telecommunications Institute
Aveiro - Portugal
LinkedIn -> http://www.linkedin.com/in/carlosmferreira
--
Carlos Miguel Ferreira
Researcher at Telecommunications Institute
Aveiro - Portugal
Work E-mail - ***@av.it.pt
Skype & GTalk -> ***@gmail.com
LinkedIn -> http://www.linkedin.com/in/carlosmferreira
Continue reading on narkive:
Loading...