$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-users] linking boost in a shared library using -fPIC
From: jono (jp_at_[hidden])
Date: 2009-01-29 20:23:37
hi.
i'm building a shared library under gcc 4.1.1 which links some boost 1.33.1 libraries.
a predecessor added the -fPIC switch to the Jamfiles of boost 'thread', 'date_time' and 'regex', and 
i have had no problems linking them.
i've added the boost 'filesystem' library to the project and similarly patched the Jamfile...
.
.
.
lib boost_filesystem
      : ../src/$(SOURCES).cpp
      : # build requirements
        <define>BOOST_FILESYSTEM_STATIC_LINK
        <include>$(BOOST_ROOT) <sysinclude>$(BOOST_ROOT)
        <no-warn>exception.cpp <no-warn>operations_posix_windows.cpp
        #********************
        <gcc><*><cxxflags>"-fPIC"
        #********************
       # common-variant-tag ensures that the library will
       # be named according to the rules used by the install
       # and auto-link features:
       common-variant-tag
      : debug release  # build variants
      ;
.
.
.
... and recompiled boost.
but i still get the following linker error.
-------------------------------------------------------------
gcc-Link-action 
bin/blablabla/libinterpreter.so/gcc/debug/shared-linkable-true/threading-multi/libinterpreter.so
/usr/bin/ld: /home/jono/lib/boost/bin_linux/debug/libboost_filesystem.a(operations_posix_windows.o): 
relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; 
recompile with -fPIC
/home/jono/lib/boost/bin_linux/debug/libboost_filesystem.a: could not read symbols: Bad value
-------------------------------------------------------------
can anyone spot my deliberate mistake?
cheers
Jono