Boost logo

Boost :

From: Soronel Haetir (soronel.haetir_at_[hidden])
Date: 2023-09-05 16:14:05


Have you made sure to remove all prior builds of your code? I've
gotten errors on windows systems with MSVC when I did not clear out
old builds (in my case the object resulting from the precompiled
header was polluted with stuff from the old version of boost).

On 9/5/23, Dennis Luehring via Boost <boost_at_[hidden]> wrote:
> 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
>
>
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
>

-- 
Soronel Haetir
soronel.haetir_at_[hidden]

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