Boost logo

Boost :

From: Dennis Luehring (dl.soluz_at_[hidden])
Date: 2023-09-05 16:04:12


1.79 links with my software
1.80 links with my software
1.81 does not link
1.82 does not link
1.83 does not link

Linux up to date Suse/Tumbleweed gcc 13.2.1

./bootstrap.sh
./b2 -j16 --toolset=gcc cxxflags=-fPIC --build-dir=./_build
address-model=64 architecture=x86 threading=multi --stagedir=./lib64-gcc
--build-type=complete --layout=versioned --without-mpi

these are the errors on linking when using 1.81 and above

ld.lld: error: duplicate symbol: boost::phoenix::placeholders::uarg1
>>> defined at local_256.hpp:16
(/home/linux/dev/3rdparty-linux-gcc/boost_1_83_0/boost/preprocessor/iteration/detail/limits/local_256.hpp:16)
>>>
Recipe_expression_validator.cpp.o:(boost::phoenix::placeholders::uarg1)
in archive
../../implementation/expression_validation/libexpression_validation.a
>>> defined at local_256.hpp:16
(/home/linux/dev/3rdparty-linux-gcc/boost_1_83_0/boost/preprocessor/iteration/detail/limits/local_256.hpp:16)
>>>            parser.cpp.o:(.bss+0xF80) in archive
../../devs/expression_parser_lib/libexpression_parser_lib.a

ld.lld: error: duplicate symbol: boost::phoenix::placeholders::uarg2
>>> defined at local_256.hpp:19
(/home/linux/dev/3rdparty-linux-gcc/boost_1_83_0/boost/preprocessor/iteration/detail/limits/local_256.hpp:19)
>>>
Recipe_expression_validator.cpp.o:(boost::phoenix::placeholders::uarg2)
in archive
../../implementation/expression_validation/libexpression_validation.a
>>> defined at local_256.hpp:19
(/home/linux/dev/3rdparty-linux-gcc/boost_1_83_0/boost/preprocessor/iteration/detail/limits/local_256.hpp:19)
>>>            parser.cpp.o:(.bss+0xFC0) in archive
../../devs/expression_parser_lib/libexpression_parser_lib.a

ld.lld: error: duplicate symbol: boost::phoenix::placeholders::uarg3
>>> defined at local_256.hpp:22
(/home/linux/dev/3rdparty-linux-gcc/boost_1_83_0/boost/preprocessor/iteration/detail/limits/local_256.hpp:22)
>>>
Recipe_expression_validator.cpp.o:(boost::phoenix::placeholders::uarg3)
in archive
../../implementation/expression_validation/libexpression_validation.a
>>> defined at local_256.hpp:22
(/home/linux/dev/3rdparty-linux-gcc/boost_1_83_0/boost/preprocessor/iteration/detail/limits/local_256.hpp:22)
>>>            parser.cpp.o:(.bss+0x1000) in archive
../../devs/expression_parser_lib/libexpression_parser_lib.a

anyone got an idea what changed between 1.80 and 1.81 to let my linking
fail with the above errors
the expression_parser_lib and expression_validation is my own code


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk