Opened 15 years ago

Closed 6 years ago

#424 closed defect (fixed)

thirdparty boost build on ubuntu 64bit linux

Reported by: warmerdam Owned by: gregboone
Priority: minor Milestone:
Component: FDO API Version: 3.3.2
Severity: 3 Keywords: thirdparty boost linux
Cc: External ID:

Description

This problem was encountered with 3.3.2RC2.

The normal build_thirdparty.sh does not build boost properly on my Ubuntu 7.10 64bit amd system. It seems that the problem is that Thirdparty/Thirdparty.sh runs boost/tools/jam/src/build.sh to build "bjam", but it assumes it will be placed in Thirdparty/boost/tools/jam/src/bin.linuxx86. On my system it is placed in .../jam/src/bin.linux instead. Apparently the name of the directory is based in some fashion on the platform name.

Because bjam is at the wrong place this:

./tools/jam/src/bin.linuxx86/bjam toolset=gcc variant=release threading=multi link=static --layout=system stage

Fails and the build continues.

I would like to suggest instead something like:

./tools/jam/src/bin.*/bjam toolset=gcc variant=release threading=multi link=static --layout=system stage

I would add it is very annoying that the build.sh script continue even when subcomponents fail. It makes it very hard at the end of a third party build to know whether things worked or not.

Change History (3)

comment:1 by warmerdam, 15 years ago

When working around the bjam problem I also run into this:

/usr/bin/ld: /wrk/home/warmerda/wrk/fdo/OpenSource_FDO/Thirdparty/boost/stage/lib/libboost_thread-mt.a(condition.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/wrk/home/warmerda/wrk/fdo/OpenSource_FDO/Thirdparty/boost/stage/lib/libboost_thread-mt.a: could not read symbols: Bad value

It would appear some sort of change is needed in how the boost libraries are built to include -fPIC. I'll dig around a bit to see how this might be done, though "jam" and boost is not my strength.

comment:2 by warmerdam, 15 years ago

OK, I give up, but I suspect the link=static is producing .a static libraries suitable only for use in statically linked apps, not for linking into a .so file.

comment:3 by jng, 6 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.