Hello Joe, Looking at the Volk commit history there was a change in July to improve linking support between GCC4 and 5. https://github.com/gnuradio/volk/commit/e5fec2aaacc8a130bcff84f1f3bbd9718250f029
It looks like Fedora 22 is taking an interesting approach to dealing with the ABI transition in libc. http://developers.redhat.com/blog/2015/02/10/gcc-5-in-fedora/ Try running cmake for volk with -D_GLIBCXX_USE_CXX11_ABI=0 Regards, Derek On Fri, Oct 28, 2016 at 5:56 PM, Joe K <[email protected]> wrote: > Hi, > > I'm having a problem building Volk 1.3 or GNU Radio version than 3.7.10 > (any) or 3.7.9.3. Versions 3.7.9.2 and older seem to work fine. This is > on a Fedora 22 system. > > I'm getting a ton of undefined reference errors to various Boost > functions. I originally thought maybe the installed version of Boost was > not up to date so I removed the version from the repo and built and > installed Boost 1.62 from source. No such luck. I've verified that the > libraries are installed in the correct locations and used the nm tool to > try to validate that the functions exist in the .so files, but that's a bit > over my head. > > I've tried to verify that the CMake configuration is reasonable and as far > as I can tell the linker is getting the correct commands. > > Any ideas? The make output is below. > > Thanks, > Joe > > > > [ 23%] Linking CXX executable volk_profile > CMakeFiles/volk_profile.dir/volk_profile.cc.o: In function > `boost::program_options::validation_error::validation_ > error(boost::program_options::validation_error::kind_t, > 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> > const&, int)': > volk_profile.cc:(.text._ZN5boost15program_options16validation_ > errorC2ENS1_6kind_tERKNSt7__cxx1112basic_stringIcSt11char_ > traitsIcESaIcEEESA_i[_ZN5boost15program_options16validation_ > errorC5ENS1_6kind_tERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_i]+0x21): > undefined reference to `boost::program_options::validation_error::get_ > template[abi:cxx11](boost::program_options::validation_error::kind_t)' > volk_profile.cc:(.text._ZN5boost15program_options16validation_ > errorC2ENS1_6kind_tERKNSt7__cxx1112basic_stringIcSt11char_ > traitsIcESaIcEEESA_i[_ZN5boost15program_options16validation_ > errorC5ENS1_6kind_tERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_i]+0x39): > undefined reference to `boost::program_options:: > error_with_option_name::error_with_option_name(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> > const&, std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&, int)' > CMakeFiles/volk_profile.dir/volk_profile.cc.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': > volk_profile.cc:(.text._ZNK5boost15program_options11typed_valueINSt7__ > cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcE6xparseERNS_ > 3anyERKSt6vectorIS7_SaIS7_EE[_ZNK5boost15program_ > options11typed_valueINSt7__cxx1112basic_stringIcSt11char_ > traitsIcESaIcEEEcE6xparseERNS_3anyERKSt6vectorIS7_SaIS7_EE]+0x1c): > 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)' > CMakeFiles/volk_profile.dir/volk_profile.cc.o: In function > `boost::program_options::typed_value<bool, 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': > volk_profile.cc:(.text._ZNK5boost15program_options11typed_ > valueIbcE6xparseERNS_3anyERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_ > traitsIcESaIcEEESaISB_EE[_ZNK5boost15program_options11typed_ > valueIbcE6xparseERNS_3anyERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_ > traitsIcESaIcEEESaISB_EE]+0x1c): 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&, bool*, int)' > CMakeFiles/volk_profile.dir/volk_profile.cc.o: In function > `boost::program_options::basic_command_line_parser< > char>::extra_parser(boost::function1<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&>)': > volk_profile.cc:(.text._ZN5boost15program_options25basic_command_line_ > parserIcE12extra_parserENS_9function1ISt4pairINSt7__ > cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ERKSA_EE[_ > ZN5boost15program_options25basic_command_line_parserIcE12extra_parserENS_ > 9function1ISt4pairINSt7__cxx1112basic_stringIcSt11char_ > traitsIcESaIcEEESA_ERKSA_EE]+0x46): undefined reference to > `boost::program_options::detail::cmdline::set_additional_parser(boost:: > function1<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&>)' > CMakeFiles/volk_profile.dir/volk_profile.cc.o: In function > `boost::program_options::basic_command_line_parser< > char>::basic_command_line_parser(int, char const* const*)': > volk_profile.cc:(.text._ZN5boost15program_options25basic_command_line_ > parserIcEC2EiPKPKc[_ZN5boost15program_options25basic_command_line_parserIcEC5EiPKPKc]+0x19c): > undefined reference to `boost::program_options::to_ > internal(std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> > const&)' > volk_profile.cc:(.text._ZN5boost15program_options25basic_command_line_ > parserIcEC2EiPKPKc[_ZN5boost15program_options25basic_command_line_parserIcEC5EiPKPKc]+0x1e7): > 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&)' > CMakeFiles/volk_profile.dir/volk_profile.cc.o: In function > `boost::program_options::typed_value<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >, char>::name() const': > volk_profile.cc:(.text._ZNK5boost15program_options11typed_valueINSt7__ > cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcE4nameEv[_ > ZNK5boost15program_options11typed_valueINSt7__ > cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcE4nameEv]+0x1d): undefined > reference to `boost::program_options::arg[abi:cxx11]' > CMakeFiles/volk_profile.dir/volk_profile.cc.o: In function > `boost::program_options::typed_value<int, char>::name() const': > volk_profile.cc:(.text._ZNK5boost15program_options11typed_ > valueIicE4nameEv[_ZNK5boost15program_options11typed_valueIicE4nameEv]+0x1d): > undefined reference to `boost::program_options::arg[abi:cxx11]' > CMakeFiles/volk_profile.dir/volk_profile.cc.o: In function > `boost::program_options::typed_value<float, char>::name() const': > volk_profile.cc:(.text._ZNK5boost15program_options11typed_ > valueIfcE4nameEv[_ZNK5boost15program_options11typed_valueIfcE4nameEv]+0x1d): > undefined reference to `boost::program_options::arg[abi:cxx11]' > CMakeFiles/volk_profile.dir/volk_profile.cc.o: In function > `boost::program_options::typed_value<bool, char>::name() const': > volk_profile.cc:(.text._ZNK5boost15program_options11typed_ > valueIbcE4nameEv[_ZNK5boost15program_options11typed_valueIbcE4nameEv]+0x1d): > undefined reference to `boost::program_options::arg[abi:cxx11]' > CMakeFiles/volk_profile.dir/volk_profile.cc.o: In function `main': > volk_profile.cc:(.text.startup+0x4d): undefined reference to > `boost::program_options::options_description::options_ > description(std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> > const&, unsigned int, unsigned int)' > volk_profile.cc:(.text.startup+0x4f1): undefined reference to > `boost::program_options::abstract_variables_map::operator[](std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&) const' > volk_profile.cc:(.text.startup+0x5b3): undefined reference to > `boost::program_options::abstract_variables_map::operator[](std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&) const' > volk_profile.cc:(.text.startup+0x60a): undefined reference to > `boost::program_options::abstract_variables_map::operator[](std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&) const' > volk_profile.cc:(.text.startup+0x6b2): undefined reference to > `boost::program_options::abstract_variables_map::operator[](std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&) const' > volk_profile.cc:(.text.startup+0x6fd): undefined reference to > `boost::program_options::abstract_variables_map::operator[](std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&) const' > CMakeFiles/volk_profile.dir/volk_profile.cc.o:volk_ > profile.cc:(.text.startup+0x75d): more undefined references to > `boost::program_options::abstract_variables_map::operator[](std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&) const' follow > CMakeFiles/volk_profile.dir/volk_profile.cc.o: In function `void > boost::program_options::validate<float, char>(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&, float*, long)': > volk_profile.cc:(.text._ZN5boost15program_options8validateIfcEEvRNS_ > 3anyERKSt6vectorINSt7__cxx1112basic_stringIT0_St11char_traitsIS7_ESaIS7_ > EEESaISB_EEPT_l[_ZN5boost15program_options8validateIfcEEvRNS_ > 3anyERKSt6vectorINSt7__cxx1112basic_stringIT0_St11char_traitsIS7_ESaIS7_EEESaISB_EEPT_l]+0x4da): > undefined reference to `boost::program_options:: > invalid_option_value::invalid_option_value(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&)' > CMakeFiles/volk_profile.dir/volk_profile.cc.o: In function `void > boost::program_options::validate<int, char>(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&, int*, long)': > volk_profile.cc:(.text._ZN5boost15program_options8validateIicEEvRNS_ > 3anyERKSt6vectorINSt7__cxx1112basic_stringIT0_St11char_traitsIS7_ESaIS7_ > EEESaISB_EEPT_l[_ZN5boost15program_options8validateIicEEvRNS_ > 3anyERKSt6vectorINSt7__cxx1112basic_stringIT0_St11char_traitsIS7_ESaIS7_EEESaISB_EEPT_l]+0x3f8): > undefined reference to `boost::program_options:: > invalid_option_value::invalid_option_value(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&)' > CMakeFiles/volk_profile.dir/volk_profile.cc.o:(.rodata._ > ZTVN5boost16exception_detail19error_info_injectorINS_15program_ > options20invalid_option_valueEEE[_ZTVN5boost16exception_ > detail19error_info_injectorINS_15program_options20invalid_option_valueEEE]+0x30): > undefined reference to `boost::program_options::error_with_option_name:: > substitute_placeholders(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&) const' > CMakeFiles/volk_profile.dir/volk_profile.cc.o:(.rodata._ > ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_ > 15program_options20invalid_option_valueEEEEE[_ZTVN5boost16exception_ > detail10clone_implINS0_19error_info_injectorINS_ > 15program_options20invalid_option_valueEEEEE]+0x38): undefined reference > to `boost::program_options::error_with_option_name:: > substitute_placeholders(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&) const' > CMakeFiles/volk_profile.dir/volk_profile.cc.o:(.rodata._ > ZTVN5boost16exception_detail19error_info_injectorINS_15program_ > options16validation_errorEEE[_ZTVN5boost16exception_detail19error_info_ > injectorINS_15program_options16validation_errorEEE]+0x30): undefined > reference to `boost::program_options::error_with_option_name:: > substitute_placeholders(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&) const' > CMakeFiles/volk_profile.dir/volk_profile.cc.o:(.rodata._ > ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_ > 15program_options16validation_errorEEEEE[_ZTVN5boost16exception_ > detail10clone_implINS0_19error_info_injectorINS_ > 15program_options16validation_errorEEEEE]+0x38): undefined reference to > `boost::program_options::error_with_option_name:: > substitute_placeholders(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&) const' > CMakeFiles/volk_profile.dir/volk_profile.cc.o:(.rodata._ > ZTVN5boost15program_options16validation_errorE[_ZTVN5boost15program_ > options16validation_errorE]+0x30): undefined reference to > `boost::program_options::error_with_option_name:: > substitute_placeholders(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&) const' > CMakeFiles/volk_profile.dir/volk_profile.cc.o:(.rodata._ > ZTVN5boost15program_options20invalid_option_valueE[_ZTVN5boost15program_ > options20invalid_option_valueE]+0x30): more undefined references to > `boost::program_options::error_with_option_name:: > substitute_placeholders(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&) const' follow > CMakeFiles/volk_profile.dir/volk_profile.cc.o:(.rodata._ > ZTVN5boost15program_options11typed_valueIbcEE[_ZTVN5boost15program_ > options11typed_valueIbcEE]+0x40): 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' > CMakeFiles/volk_profile.dir/volk_profile.cc.o:(.rodata._ > ZTVN5boost15program_options11typed_valueIfcEE[_ZTVN5boost15program_ > options11typed_valueIfcEE]+0x40): 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' > CMakeFiles/volk_profile.dir/volk_profile.cc.o:(.rodata._ > ZTVN5boost15program_options11typed_valueIicEE[_ZTVN5boost15program_ > options11typed_valueIicEE]+0x40): 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' > CMakeFiles/volk_profile.dir/volk_profile.cc.o:(.rodata._ > ZTVN5boost15program_options11typed_valueINSt7__ > cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEE[_ZTVN5boost15program_ > options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEE]+0x40): > 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' > collect2: error: ld returned 1 exit status > volk/apps/CMakeFiles/volk_profile.dir/build.make:126: recipe for target > 'volk/apps/volk_profile' failed > make[2]: *** [volk/apps/volk_profile] Error 1 > CMakeFiles/Makefile2:346: recipe for target > 'volk/apps/CMakeFiles/volk_profile.dir/all' > failed > make[1]: *** [volk/apps/CMakeFiles/volk_profile.dir/all] Error 2 > > > _______________________________________________ > Discuss-gnuradio mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > >
_______________________________________________ Discuss-gnuradio mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
