Boost logo

Boost-Build :

Subject: [Boost-build] Why the 1.6.x's mangle name rule is different from 1.5.x
From: jiang dong Sun (jiangdong.sun_at_[hidden])
Date: 2018-03-02 05:23:10


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?

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

Thanks,

-- 
Sun Jiang Dong

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