Created attachment 1950649 [details] build.log with linker error Description of problem: If two or more compilation units each #include <boost/phoenix.hpp> in a shared lib, there are multiple defintions of boost::phoenix::placeholders::uargX and you get a link error See https://kojipkgs.fedoraproject.org//work/tasks/6935/98666935/build.log (included as an attachment too.) gcc, since gcc-11 or so, IIRC, has stopped silently combining 'global' definitions of variables. Version-Release number of selected component (if applicable): boost-1.81 How reproducible: build ceph-18 snapshot Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
(In reply to Kaleb KEITHLEY from comment #0) > ... > gcc, since gcc-11 or so, IIRC, has stopped silently combining 'global' > definitions of variables. My notes say this started with gcc-10 in fedora.
The -fno-common change in gcc-10 only affects C, not C++, so is nothing to do with this.
Certainly seems like a multiple definition bug in boost: // Make unpacked argument placeholders namespace placeholders { #define BOOST_PP_LOCAL_LIMITS (1, BOOST_PHOENIX_ARG_LIMIT) #define BOOST_PP_LOCAL_MACRO(N) \ auto uarg##N = \ boost::phoenix::get_<(N)-1>(boost::phoenix::placeholders::arg1); #include BOOST_PP_LOCAL_ITERATE() } }} // namespace boost::phoenix This expands to: namespace placeholders { # 1 "/usr/include/boost/preprocessor/iteration/detail/local.hpp" 1 3 4 # 818 "/usr/include/boost/preprocessor/iteration/detail/local.hpp" 3 4 # 1 "/usr/include/boost/preprocessor/iteration/detail/limits/local_256.hpp" 1 3 4 # 16 "/usr/include/boost/preprocessor/iteration/detail/limits/local_256.hpp" 3 4 auto uarg1 = boost::phoenix::get_<(1)-1>(boost::phoenix::placeholders::arg1); etc. That's a new header in boost 1.81.0 Ah this is https://github.com/boostorg/phoenix/issues/111
The new tuple support in phoenix seems totally broken: https://github.com/boostorg/phoenix/issues/115
Building boost-1.81.0-1.fc39 for rawhide Created task: 98715627 Task info: https://koji.fedoraproject.org/koji/taskinfo?taskID=98715627
confirming that ceph-18 snapshot builds (without my hack patches) with 1.81.0-1
The fix in is rawhide now