Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 09 Feb 2012 22:08:03 +0200
From:      Andriy Gapon <avg@FreeBSD.org>
To:        Baptiste Daroussin <bapt@FreeBSD.org>
Cc:        Alexander Churanov <alexanderchuranov@gmail.com>, freebsd-ports@FreeBSD.org
Subject:   Re: boost 1.48.0
Message-ID:  <4F3427A3.6050407@FreeBSD.org>
In-Reply-To: <20120124081455.GI72126@azathoth.lan>
References:  <4F188891.1050204@FreeBSD.org> <20120119224423.GL4729@azathoth.lan> <4F1918B1.6000603@FreeBSD.org> <20120123171803.GC72126@azathoth.lan> <4F1DCF90.9040702@FreeBSD.org> <20120123212554.GF72126@azathoth.lan> <4F1E6662.8050303@FreeBSD.org> <20120124081455.GI72126@azathoth.lan>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4F3427A3.6050407>