Subject: Re: [boost] Boost modular: Build without version number suffixes
From: Robert Dailey (rcdailey.lists_at_[hidden])
Date: 2015-01-26 00:09:24


On Sun, Jan 25, 2015 at 10:48 PM, Robert Dailey
<rcdailey.lists_at_[hidden]> wrote:
> When I build modular boost on Linux Mint 17, I get SO files named like so:
>
> libboost_date_time.so.1.57.0
>
> with a corresponding symlink without the version number:
>
> libboost_date_time.so
>
> I'd like it to build without the version number because when I rename
> the base file to remove the version, code links fine but during
> runtime it tries to load the SO with the version number at the end. I
> don't know how to fix that, so I assume the fix is to build boost
> without the version numbers.
>
> Any help is appreciated.

I figured out what I had to do. I made the following change to
boostcpp.jam (around line 158):

        # Optionally add version suffix. On NT, library with version suffix will
        # not be recognized by linkers. On CYGWIN, we get strage duplicate
        # symbol errors when library is generated with version suffix. On OSX,
        # version suffix is not needed -- the linker expects the
        # libFoo.1.2.3.dylib format. AIX linkers do not accept version suffixes
        # either. Pgi compilers can not accept a library with version suffix.
        if $(type) = SHARED_LIB &&
          ! [ $(property-set).get <target-os> ] in windows cygwin darwin aix &&
          ! [ $(property-set).get <toolset> ] in pgi
        {
            result = $(result) ; #.$(BOOST_VERSION) ;
        }

The BOOST_VERSION was being added to the end with no apparent option
to turn it off. Would love to see an option to turn this off.