Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 611994

Summary: dev-libs/boost fails to compile on crossdev toolchain
Product: Gentoo Linux Reporter: Eduardo Barreto Alexandre <sezdocs>
Component: Current packagesAssignee: Embedded Gentoo Team <embedded>
Status: RESOLVED DUPLICATE    
Severity: normal CC: sezdocs, toolchain
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: build.log
emerge --info
i686-unknown-linux-gnu-emerge --info

Description Eduardo Barreto Alexandre 2017-03-07 20:00:31 UTC
Created attachment 466288 [details]
build.log

Any boost version in portage fails to compile on a crossdev toolchain because it can't find the script b2.

Attached the build.log with the error.

I tested it with every version available but all fails in the same place.

The command I did was

USE="static-libs" emerge-wrapper --target i686-unknown-linux-gnu -1 dev-libs/boost --jobs=1
Comment 1 Michael Palimaka (kensington) gentoo-dev 2017-03-09 10:52:16 UTC
Could you add emerge --info too please?
Comment 2 Eduardo Barreto Alexandre 2017-03-09 11:57:22 UTC
Created attachment 466382 [details]
emerge --info
Comment 3 Eduardo Barreto Alexandre 2017-03-09 11:57:50 UTC
Created attachment 466384 [details]
i686-unknown-linux-gnu-emerge --info
Comment 4 Eduardo Barreto Alexandre 2017-03-09 11:59:30 UTC
Sure thing. I attached both emerge --info and i686-unknown-linux-gnu-emerge --info (the crossdev toolchain I'm trying to install boost).
Comment 5 Eduardo Barreto Alexandre 2017-03-10 18:52:06 UTC
Investigating further, it seems that the problem is that when building boost through i686-unknown-linux-gnu-emerge, it will ignore the boost-build dependency, boost-build is the package needed for the bjam and b2 commands used in the boost ebuild

I don't understand why portage ignores that dependency since it is listed in the DEPEND variable.

Also, there is a second issue because the ebuild calls b2 directly, so instead it should do something like this:

${ROOT}/usr/bin/b2

which would be translated (in case of a i686-unknown-linux-gnu crossdev toolchain) to:

/usr/i686-unknown-linux-gnu/usr/bin/b2

I don't know the exact variable to use for that, so I used ROOT just as a example.

As a workaround for now, I can install in my system boost-build, which will install b2 to /usr/bin, making the toolchain boost emerge works.
Comment 6 SpanKY gentoo-dev 2017-03-11 06:01:11 UTC
nothing we can do here at this point.  you'll have to manually `emerge boost-build` before you try to cross-compile boost.

*** This bug has been marked as a duplicate of bug 317337 ***