Bug#1129945: galera-4 FTBFS on hppa, m68k and sh4 due to undefined reference to `boost::program_options
Otto Kekäläinen <[email protected]> Fri, 6 Mar 2026 19:52:48 +0800
| Newsgroups | gmane.linux.debian.ports.68k |
|---|---|
| Message-ID | <CAOU6tAD9TsYLd51JOSytU8wPYPOkJZcXmRzbC_sqdeC1ayky=w__1460.21770067222$1772798133$gmane$org@mail.gmail.com> |
Package: src:galera-4 Version: 26.4.24-1+b1 Tags: sid forky ftbfs confirmed help User: [email protected] Usertags: boost1.90 X-Debbugs-CC: [email protected] User: [email protected] Usertags: hppa X-Debbugs-CC: [email protected] User: [email protected] Usertags: sh4 X-Debbugs-CC: [email protected] User: [email protected] Usertags: m68k When rebuilt with new Boost 1.90, Galera failed to build on a couple of archs with very similar looking error messages. Example from sh4 below. [ 89%] Linking CXX executable garbd cd /<<PKGBUILDDIR>>/obj-sh4-linux-gnu/garb && /usr/bin/cmake -E cmake_link_script CMakeFiles/garbd.dir/link.txt --verbose=3D1 /usr/bin/ld: CMakeFiles/garbd.dir/garb_config.cpp.o: in function `std::__new_allocator<char>::deallocate(char*, unsigned int)': /usr/include/c++/15/bits/new_allocator.h:172:(.text+0x96c): undefined reference to `boost::program_options::options_description::options_descript= ion(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)' /usr/bin/ld: /usr/include/c++/15/bits/new_allocator.h:172:(.text+0x97c): undefined reference to `boost::program_options::options_description::m_default_line_length' /usr/bin/ld: /usr/include/c++/15/bits/new_allocator.h:172:(.text+0x984): undefined reference to `boost::program_options::options_description::add_options()' /usr/bin/ld: /usr/include/c++/15/bits/new_allocator.h:172:(.text+0x988): undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, char const*)' /usr/bin/ld: /usr/include/c++/15/bits/new_allocator.h:172:(.text+0x994): undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, char const*)' /usr/bin/ld: /usr/include/c++/15/bits/new_allocator.h:172:(.text+0x9ac): undefined reference to `boost::program_options::options_description::options_description(std::__cx= x11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)' /usr/bin/ld: CMakeFiles/garbd.dir/garb_config.cpp.o: in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_local_data()': /usr/include/c++/15/bits/basic_string.h:246:(.text+0xd8c): undefined reference to `boost::program_options::options_description::add_options()' /usr/bin/ld: /usr/include/c++/15/bits/basic_string.h:246:(.text+0xd90): undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, char const*)' /usr/bin/ld: /usr/include/c++/15/bits/basic_string.h:246:(.text+0xda4): undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)' /usr/bin/ld: /usr/include/c++/15/bits/basic_string.h:246:(.text+0xdb4): undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)' /usr/bin/ld: /usr/include/c++/15/bits/basic_string.h:246:(.text+0xdc4): undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)' /usr/bin/ld: /usr/include/c++/15/bits/basic_string.h:246:(.text+0xdd4): undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)' /usr/bin/ld: /usr/include/c++/15/bits/basic_string.h:246:(.text+0xde4): undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)' /usr/bin/ld: CMakeFiles/garbd.dir/garb_config.cpp.o:/usr/include/c++/15/bit= s/basic_string.h:246: more undefined references to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)' follow /usr/bin/ld: CMakeFiles/garbd.dir/garb_config.cpp.o: in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_local_data()': /usr/include/c++/15/bits/basic_string.h:246:(.text+0xe20): undefined reference to `boost::program_options::options_description::options_descript= ion(unsigned int, unsigned int)' /usr/bin/ld: /usr/include/c++/15/bits/basic_string.h:246:(.text+0xe24): undefined reference to `boost::program_options::options_description::add_options()' /usr/bin/ld: CMakeFiles/garbd.dir/garb_config.cpp.o: in function `std::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::~_Vector_base()': /usr/include/c++/15/bits/stl_vector.h:375:(.text+0xfcc): undefined reference to `boost::program_options::options_description_easy_init::operat= or()(char const*, boost::program_options::value_semantic const*, char const*)' /usr/bin/ld: /usr/include/c++/15/bits/stl_vector.h:375:(.text+0xfd8): undefined reference to `boost::program_options::options_description::options_description(unsigned int, unsigned int)' /usr/bin/ld: /usr/include/c++/15/bits/stl_vector.h:375:(.text+0xfdc): undefined reference to `boost::program_options::options_description::add(boost::program_options::o= ptions_description const&)' /usr/bin/ld: /usr/include/c++/15/bits/stl_vector.h:375:(.text+0xfe0): undefined reference to `boost::program_options::options_description::add(boost::program_options::o= ptions_description const&)' /usr/bin/ld: /usr/include/c++/15/bits/stl_vector.h:375:(.text+0xfe4): undefined reference to `boost::program_options::options_description::add(boost::program_options::o= ptions_description const&)' /usr/bin/ld: /usr/include/c++/15/bits/stl_vector.h:375:(.text+0xfe8): undefined reference to `boost::program_options::positional_options_description::positional_options= _description()' /usr/bin/ld: /usr/include/c++/15/bits/stl_vector.h:375:(.text+0xfec): undefined reference to `boost::program_options::positional_options_description::add(char const*, int)' /usr/bin/ld: /usr/include/c++/15/bits/stl_vector.h:375:(.text+0xff4): undefined reference to `boost::program_options::variables_map::variables_map()' /usr/bin/ld: /usr/include/c++/15/bits/stl_vector.h:375:(.text+0xffc): undefined reference to `boost::program_options::detail::cmdline::set_options_description(boost::pr= ogram_options::options_description const&)' /usr/bin/ld: /usr/include/c++/15/bits/stl_vector.h:375:(.text+0x1000): undefined reference to `boost::program_options::detail::cmdline::set_positional_options(boost::pro= gram_options::positional_options_description const&)' /usr/bin/ld: /usr/include/c++/15/bits/stl_vector.h:375:(.text+0x1008): undefined reference to `boost::program_options::store(boost::program_options::basic_parsed_options= <char> const&, boost::program_options::variables_map&, bool)' /usr/bin/ld: CMakeFiles/garbd.dir/garb_config.cpp.o: in function `boost::detail::function::basic_vtable<std::pair<std::__cxx11::basic_string= <char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>::clear(boost::detail::function::function_buffer&) const': /usr/include/boost/function/function_template.hpp:442:(.text+0x12b8): undefined reference to `boost::program_options::notify(boost::program_options::variables_map&)' /usr/bin/ld: /usr/include/boost/function/function_template.hpp:442:(.text+0= x12dc): undefined reference to `boost::program_options::operator<<(std::ostream&, boost::program_options::options_description const&)' /usr/bin/ld: /usr/include/boost/function/function_template.hpp:442:(.text+0= x12e8): undefined reference to `vtable for boost::program_options::variables_map' /usr/bin/ld: CMakeFiles/garbd.dir/garb_config.cpp.o: in function `std::_Vector_base<boost::program_options::basic_option<char>, std::allocator<boost::program_options::basic_option<char> > >::~_Vector_base()': /usr/include/c++/15/bits/stl_vector.h:375:(.text+0x14f8): undefined reference to `boost::program_options::basic_parsed_options<char> boost::program_options::parse_config_file<char>(std::basic_istream<char, std::char_traits<char> >&, boost::program_options::options_description const&, bool)' /usr/bin/ld: /usr/include/c++/15/bits/stl_vector.h:375:(.text+0x14fc): undefined reference to `boost::program_options::store(boost::program_options::basic_parsed_options= <char> const&, boost::program_options::variables_map&, bool)' /usr/bin/ld: CMakeFiles/garbd.dir/garb_config.cpp.o: in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_is_local() const': /usr/include/c++/15/bits/basic_string.h:280:(.text+0x1748): undefined reference to `boost::program_options::notify(boost::program_options::variab= les_map&)' /usr/bin/ld: CMakeFiles/garbd.dir/garb_config.cpp.o: in function `garb::Config::Config(int, char**)': ./obj-sh4-linux-gnu/garb/garb/garb_config.cpp:123:(.text+0x19cc): undefined reference to `vtable for boost::program_options::variables_map' /usr/bin/ld: CMakeFiles/garbd.dir/garb_config.cpp.o: in function `std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*)': /usr/include/c++/15/bits/stl_tree.h:2586:(.text+0x1f18): undefined reference to `vtable for boost::program_options::variables_map' /usr/bin/ld: CMakeFiles/garbd.dir/garb_config.cpp.o: in function `boost::program_options::typed_value<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char>::xparse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) const': /usr/include/boost/program_options/detail/value_semantic.hpp:205:(.text._ZN= K5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_t= raitsIcESaIcEEEcE6xparseERNS_3anyERKSt6vectorIS7_SaIS7_EE[_ZNK5boost15progr= am_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE= EcE6xparseERNS_3anyERKSt6vectorIS7_SaIS7_EE]+0x5c): undefined reference to `boost::program_options::validate(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, int)' /usr/bin/ld: CMakeFiles/garbd.dir/garb_config.cpp.o: in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_destroy(unsigned int)': /usr/include/c++/15/bits/basic_string.h:305:(.text._ZNK5boost15program_opti= ons11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcE4nam= eEv[_ZNK5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt1= 1char_traitsIcESaIcEEEcE4nameEv]+0x2e4): undefined reference to `boost::program_options::arg[abi:cxx11]' /usr/bin/ld: CMakeFiles/garbd.dir/garb_config.cpp.o: in function `std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > boost::program_options::to_internal<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)': /usr/include/boost/program_options/detail/convert.hpp:81:(.text._ZN5boost15= program_options25basic_command_line_parserIcEC2EiPKPKc[_ZN5boost15program_o= ptions25basic_command_line_parserIcEC5EiPKPKc]+0x324): undefined reference to `boost::program_options::detail::cmdline::cmdline(std::vector<std::__cxx11:= :basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)' /usr/bin/ld: /usr/include/boost/program_options/detail/convert.hpp:81:(.tex= t._ZN5boost15program_options25basic_command_line_parserIcEC2EiPKPKc[_ZN5boo= st15program_options25basic_command_line_parserIcEC5EiPKPKc]+0x344): undefined reference to `boost::program_options::to_internal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' /usr/bin/ld: CMakeFiles/garbd.dir/garb_config.cpp.o: in function `boost::program_options::basic_command_line_parser<char>::run()': /usr/include/c++/15/bits/basic_string.h:896:(.text._ZN5boost15program_optio= ns25basic_command_line_parserIcE3runEv[_ZN5boost15program_options25basic_co= mmand_line_parserIcE3runEv]+0x350): undefined reference to `boost::program_options::detail::cmdline::get_canonical_option_prefix()' /usr/bin/ld: /usr/include/c++/15/bits/basic_string.h:896:(.text._ZN5boost15= program_options25basic_command_line_parserIcE3runEv[_ZN5boost15program_opti= ons25basic_command_line_parserIcE3runEv]+0x354): undefined reference to `boost::program_options::detail::cmdline::run()' /usr/bin/ld: CMakeFiles/garbd.dir/garb_config.cpp.o:(.data.rel.ro._ZTIN5boo= st15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traits= IcESaIcEEEcEE[_ZTIN5boost15program_options11typed_valueINSt7__cxx1112basic_= stringIcSt11char_traitsIcESaIcEEEcEE]+0x10): undefined reference to `typeinfo for boost::program_options::value_semantic_codecvt_helper<char>' /usr/bin/ld: CMakeFiles/garbd.dir/garb_config.cpp.o:(.data.rel.ro._ZTVN5boo= st15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traits= IcESaIcEEEcEE[_ZTVN5boost15program_options11typed_valueINSt7__cxx1112basic_= stringIcSt11char_traitsIcESaIcEEEcEE]+0x1c): undefined reference to `boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::= any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) const' [ 90%] Building CXX object galera/src/CMakeFiles/galera.dir/wsrep_params.cp= p.o cd /<<PKGBUILDDIR>>/obj-sh4-linux-gnu/galera/src && /usr/bin/c++ -DBOOST_BIND_GLOBAL_PLACEHOLDERS=3D1 -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG=3D1 -DGALERA_HAVE_SSL -DGALERA_LOG_H_ENABLE_CXX -DGALERA_ONLY_ALIGNED -DGU_CRC32C_NO_HARDWARE -DHAVE_ASIO_HPP -DHAVE_BOOST_SHARED_PTR_HPP -DHAVE_BYTESWAP_H -DHAVE_COMMON_H -DHAVE_ENDIAN_H -DHAVE_STD_ARRAY -DHAVE_STD_UNORDERED_MAP -DNDEBUG -DOPENSSL_HAS_SET_ECDH_AUTO -D_XOPEN_SOURCE=3D600 -I/<<PKGBUILDDIR>> -I/<<PKGBUILDDIR>>/common -I/<<PKGBUILDDIR>>/galera/src -I/<<PKGBUILDDIR>>/galerautils/src -I/<<PKGBUILDDIR>>/gcache/src -I/<<PKGBUILDDIR>>/gcomm/src -I/<<PKGBUILDDIR>>/gcs/src -I/<<PKGBUILDDIR>>/wsrep/src -Wall -Wextra -g -O2 -Woverloaded-virtual -g -O2 -ffile-prefix-map=3D/<<PKGBUILDDIR>>=3D. -fstack-protector-strong -Wformat -Werror=3Dformat-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=3D64 -D_TIME_BITS=3D64 -Wdate-time -D_FORTIFY_SOURCE=3D2 -std=3Dgnu++11 -fPIC -Wno-conversion -Wno-unused-parameter -MD -MT galera/src/CMakeFiles/galera.dir/wsrep_params.cpp.o -MF CMakeFiles/galera.dir/wsrep_params.cpp.o.d -o CMakeFiles/galera.dir/wsrep_params.cpp.o -c /<<PKGBUILDDIR>>/galera/src/wsrep_params.cpp collect2: error: ld returned 1 exit status /usr/bin/c++ -Wall -Wextra -g -O2 -Woverloaded-virtual -g -O2 -ffile-prefix-map=3D/<<PKGBUILDDIR>>=3D. -fstack-protector-strong -Wformat -Werror=3Dformat-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=3D64 -D_TIME_BITS=3D64 -Wdate-time -D_FORTIFY_SOURCE=3D2 -Wl,-z,relro -Wl,-z,now -Wl,--dependency-file=3DCMakeFiles/garbd.dir/link.d CMakeFiles/garbd.dir/garb_config.cpp.o CMakeFiles/garbd.dir/garb_logger.cpp.o CMakeFiles/garbd.dir/garb_gcs.cpp.o CMakeFiles/garbd.dir/garb_recv_loop.cpp.o CMakeFiles/garbd.dir/garb_main.cpp.o -o garbd ../gcs/src/libgcs4garb.a ../gcomm/src/libgcomm.a ../gcache/src/libgcache.a ../galerautils/src/libgalerautilsxx.a ../galerautils/src/libgalerautils.a ../galerautils/src/libgalerautils_log.a /usr/lib/sh4-linux-gnu/libpthread.a /usr/lib/sh4-linux-gnu/librt.a /usr/lib/sh4-linux-gnu/libatomic.so.1 /usr/lib/sh4-linux-gnu/libssl.so /usr/lib/sh4-linux-gnu/libcrypto.so make[3]: *** [garb/CMakeFiles/garbd.dir/build.make:179: garb/garbd] Error 1 make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-sh4-linux-gnu' make[2]: *** [CMakeFiles/Makefile2:1211: garb/CMakeFiles/garbd.dir/all] Err= or 2 If you know how to fix this, please submit a PR upstream https://github.com/mariadb-corporation/galera/ and share the URL here so we can cherry-pick your change into Debian (unless upstream is merges and releases first).