Boost logo

Boost :

From: Jeff Gray (jeffg_at_[hidden])
Date: 2003-08-11 21:50:22


I am trying to compile Boost against the uClibc libraries. This requires
that I define a custom value for LD_LIBRARY_PATH, so that my uClibc
libraries are used instead of the standard system libraries.

The problem I have is that building Boost.Python generates its own
LD_LIBRARY_PATH definition that points to my Python library directory
only. This results in the following unpleasant result:

ldd libboost_python_debug.so.1.30.0
       libc.so.6 => /lib/i686/libc.so.6 (0x40022000)
       /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
       /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
       libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x00000000)
       libm.so.0 => /usr/uclibc/lib/libm.so.0 (0x00000000)
       libgcc_s.so.0.9.9 => /usr/uclibc/lib/libgcc_s.so.0.9.9 (0x00000000)
       libc.so.0 => /usr/uclibc/lib/libc.so.0 (0x00000000)
       libm.so.6 => /lib/libm.so.6 (0x00000000)
       libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00000000)
       libc.so.6 => /lib/libc.so.6 (0x00000000)
       /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000)

Note that BOTH glibc and uClibc libraries have been linked against.

If I manually copy the very long line that builds the libboost_python.so
file and run it under my environment, it links correctly, but I cannot
force jam to do what I want.

My question is : How do I stop this internal value for LD_LIBRARY_PATH
being set? I've tried every environment variable I can think of.

My system is a Mandrake 9.1 base. I'm running Python 2.2.3 compiled
against uClibc & I'm using the uClibc toolset based on gcc 3.2.3.
Everything else compiles and links well. I have an embedded system
running this version of Python & it's very happy. Boost is my one
remaining problem.

Here is my setup file:

export PYTHON_ROOT=/usr/uclibc/usr
export GCC_ROOT_DIRECTORY=/usr/uclibc/
export GCC_BIN_DIRECTORY=/usr/uclibc/i586-linux/bin/
export GCC_STDLIB_DIRECTORY=/usr/uclibc/lib
export CPATH=
/usr/uclibc/i586-linux/include:/usr/uclibc/i586-linux/sys-include:/usr/uclibc/lib/gcc-lib/i586-linux/3.2.3/include:/usr/include

export CPLUS_INCLUDE_PATH=
"/usr/uclibc/usr/include/python2.2:/path-to-Boost/boost:/usr/uclibc/include/c++:/usr/uclibc/include/c++/i586-linux:/usr/uclibc/include/c++/backward:/usr/include"

export LD_LIBRARY_PATH=/usr/uclibc/lib:/usr/uclibc/usr/lib/python2.2/config
bjam -d2 -q


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk