|
Boost-Build : |
Subject: Re: [Boost-build] Why the 1.6.x's mangle name rule is different from 1.5.x
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2018-03-09 19:23:47
AMDG
On 03/01/2018 10:23 PM, jiang dong Sun via Boost-build wrote:
> Recently I built boost 1.66, found the build libraries contain
> different mangled name with the former one in 1.59.
> For example
> In 1.59,
> # nm -CD ./stage/lib/libboost_regex-single.so.1.59.0 | grep get_mem_block
> 00000000000ad530 T boost::re_detail::get_mem_block()
>
> while in 1.66,
> nm -CD ./stage/lib/libboost_regex-single.so.1.66.0 | grep get_mem_block
> 00000000001f5f78 T boost::re_detail_106600::get_mem_block()
>
> The new version's mangled name contains the boost version number '_106600'.
> That make the link fail.
>
> Is this a bug or a rule change?
>
This is specific to Boost.Regex and is intentional.
You can't reliably link to a different version of
Boost from the version with which you compiled your
code.
> BTW, my build command is as below.
> ./b2 -j 8 --layout=tagged --buildid=single threading=single
> link=shared,static cxxflags=-fPIC --without-locale --without-thread
> --without-wave stage
>
In Christ,
Steven Watanabe
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk