boost 1.48.0

Andriy Gapon avg at FreeBSD.org
Thu Feb 9 20:08:11 UTC 2012


on 24/01/2012 10:14 Baptiste Daroussin said the following:
> On Tue, Jan 24, 2012 at 10:05:54AM +0200, Andriy Gapon wrote:
>> on 23/01/2012 23:25 Baptiste Daroussin said the following:
>>> I agree this was a fast patching to be able to use it for libreoffice,
>>> we should for have a closer look at it.
>> 
>> And, just in case, what I did was put the following line into 
>> tools/build/v2/user-config.jam: using gcc : 4.6 : g++46 ;
>> 
>> But this is not flexible enough, it seems.
> 
> From what I've looked at this is the right solution: modifying
> user-config.jam, we should just be able to do it a flexible way :)

Another issue.  We definitely need a variant of one patch from the current
boost version:
--- boostcpp.jam.orig	2012-02-09 19:58:58.785939710 +0200
+++ boostcpp.jam	2012-02-09 19:59:27.145935374 +0200
@@ -154,7 +154,7 @@ rule tag ( name : type ? : property-set
         # suffixes either. Pgi compilers can not accept library with version
         # suffix.
         if $(type) = SHARED_LIB &&
-          ( ! ( [ $(property-set).get <target-os> ] in windows cygwin darwin
aix ) &&
+          ( ! ( [ $(property-set).get <target-os> ] in windows cygwin darwin
aix freebsd ) &&
             ! ( [ $(property-set).get <toolset> ] in pgi ) )
         {
             result = $(result).$(BOOST_VERSION)  ;

Without this patch we get the following:
$ readelf -a /usr/local/lib/libboost_program_options.so.4| fgrep SONAME
 0x000000000000000e (SONAME)             Library soname:
[libboost_program_options.so.1.48.0]

But the libraries are installed as .so and .so.4 (current BOOST_SHARED_LIB_VER).
Because of the SONAME the run-time linker seems to look for .so.1.48.0 files.

Another approach to patching this issue could be replacing $(BOOST_VERSION)
with a value of BOOST_SHARED_LIB_VER, so that SONAME entry has a .so.4 form.

With the above path the do-install target for shared libs should be changed to
this:
do-install:
# Install libraries
.for lib in ${BOOST_LIBS}
        ${INSTALL_LIB} ${WRKSRC}/stage/lib/libboost_${lib}.so
${PREFIX}/lib/libboost_${lib}.so.${BOOST_SHARED_LIB_VER}

-- 
Andriy Gapon


More information about the freebsd-ports mailing list