|
From: | Joe K |
Subject: | Re: [Discuss-gnuradio] [VOLK] Problem building on Fedora 22 |
Date: | Fri, 28 Oct 2016 19:37:20 -0700 |
DerekRegards,Try running cmake for volk with -D_GLIBCXX_USE_CXX11_ABI=0It looks like Fedora 22 is taking an interesting approach to dealing with the ABI transition in libc.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/ e5fec2aaacc8a130bcff84f1f3bbd9 718250f029
http://developers.redhat.com/blog/2015/02/10/gcc-5-in- fedora/ On Fri, Oct 28, 2016 at 5:56 PM, Joe K <address@hidden> wrote:JoeThanks,Any ideas? The make output is below.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.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.
[ 23%] Linking CXX executable volk_profile
CMakeFiles/volk_profile.dir/volk_profile.cc.o: In function `boost::program_options::valid ation_error::validation_error( boost::program_options::valida tion_error::kind_t, std::__cxx11::basic_string<cha r, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<cha r, std::char_traits<char>, std::allocator<char> > const&, int)':
volk_profile.cc:(.text._ZN5boost15program_options16validatio n_errorC2ENS1_6kind_tERKNSt7__ cxx1112basic_stringIcSt11char_ traitsIcESaIcEEESA_i[_ZN5boost 15program_options16validation_ errorC5ENS1_6kind_tERKNSt7__cx x1112basic_stringIcSt11char_tr aitsIcESaIcEEESA_i]+0x21): undefined reference to `boost::program_options::valid ation_error::get_template[abi: cxx11](boost::program_options: :validation_error::kind_t)'
volk_profile.cc:(.text._ZN5boost15program_options16validatio n_errorC2ENS1_6kind_tERKNSt7__ cxx1112basic_stringIcSt11char_ traitsIcESaIcEEESA_i[_ZN5boost 15program_options16validation_ errorC5ENS1_6kind_tERKNSt7__cx x1112basic_stringIcSt11char_tr aitsIcESaIcEEESA_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<cha r, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<cha r, 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::basi c_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::b asic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) const':
volk_profile.cc:(.text._ZNK5boost15program_options11typed_ valueINSt7__cxx1112basic_ stringIcSt11char_traitsIcESaIc EEEcE6xparseERNS_3anyERKSt6vec torIS7_SaIS7_EE[_ZNK5boost15pr ogram_options11typed_ valueINSt7__cxx1112basic_ stringIcSt11char_traitsIcESaIc EEEcE6xparseERNS_3anyERKSt6vec torIS7_SaIS7_EE]+0x1c): undefined reference to `boost::program_options::valid ate(boost::any&, std::vector<std::__cxx11::basi c_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::b asic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::__cxx11::basic_string<cha r, 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::basi c_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::b asic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) const':
volk_profile.cc:(.text._ZNK5boost15program_options11typed_va lueIbcE6xparseERNS_3anyERKSt6v ectorINSt7__cxx1112basic_ stringIcSt11char_traitsIcESaIc EEESaISB_EE[_ZNK5boost15progra m_options11typed_valueIbcE6xpa rseERNS_3anyERKSt6vectorINSt7_ _cxx1112basic_ stringIcSt11char_traitsIcESaIc EEESaISB_EE]+0x1c): undefined reference to `boost::program_options::valid ate(boost::any&, std::vector<std::__cxx11::basi c_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::b asic_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<cha r, std::char_traits<char>, std::allocator<char> > >, std::__cxx11::basic_string<cha r, std::char_traits<char>, std::allocator<char> > const&>)':
volk_profile.cc:(.text._ZN5boost15program_options25basic_ command_line_parserIcE12extra_ parserENS_9function1ISt4pairIN St7__cxx1112basic_ stringIcSt11char_traitsIcESaIc EEESA_ERKSA_EE[_ZN5boost15prog ram_options25basic_command_ line_parserIcE12extra_ parserENS_9function1ISt4pairIN St7__cxx1112basic_ stringIcSt11char_traitsIcESaIc EEESA_ERKSA_EE]+0x46): undefined reference to `boost::program_options::detai l::cmdline::set_additional_ parser(boost::function1<std:: pair<std::__cxx11::basic_ string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<cha r, std::char_traits<char>, std::allocator<char> > >, std::__cxx11::basic_string<cha r, 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_parserIcEC2EiPKPK c[_ZN5boost15program_options25 basic_command_line_parserIcEC5 EiPKPKc]+0x19c): undefined reference to `boost::program_options::to_in ternal(std::__cxx11::basic_str ing<char, std::char_traits<char>, std::allocator<char> > const&)'
volk_profile.cc:(.text._ZN5boost15program_options25basic_ command_line_parserIcEC2EiPKPK c[_ZN5boost15program_options25 basic_command_line_parserIcEC5 EiPKPKc]+0x1e7): undefined reference to `boost::program_options::detai l::cmdline::cmdline(std::vecto r<std::__cxx11::basic_string< char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::b asic_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_traitsIcESaIc EEEcE4nameEv[_ZNK5boost15progr am_options11typed_valueINSt7__ cxx1112basic_stringIcSt11char_ traitsIcESaIcEEEcE4nameEv]+0x1 d): undefined reference to `boost::program_options::arg[a bi: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_va lueIicE4nameEv[_ZNK5boost15pro gram_options11typed_valueIicE4 nameEv]+0x1d): undefined reference to `boost::program_options::arg[a bi: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_va lueIfcE4nameEv[_ZNK5boost15pro gram_options11typed_valueIfcE4 nameEv]+0x1d): undefined reference to `boost::program_options::arg[a bi: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_va lueIbcE4nameEv[_ZNK5boost15pro gram_options11typed_valueIbcE4 nameEv]+0x1d): undefined reference to `boost::program_options::arg[a bi:cxx11]'
CMakeFiles/volk_profile.dir/volk_profile.cc.o: In function `main':
volk_profile.cc:(.text.startup+0x4d): undefined reference to `boost::program_options::optio ns_description::options_descri ption(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::abstr act_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::abstr act_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::abstr act_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::abstr act_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::abstr act_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::abstr act_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::valida te<float, char>(boost::any&, std::vector<std::__cxx11::basi c_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::b asic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, float*, long)':
volk_profile.cc:(.text._ZN5boost15program_options8validateIf cEEvRNS_3anyERKSt6vectorINSt7_ _cxx1112basic_stringIT0_St11ch ar_traitsIS7_ESaIS7_EEESaISB_ EEPT_l[_ZN5boost15program_opti ons8validateIfcEEvRNS_3anyERKS t6vectorINSt7__cxx1112basic_ stringIT0_St11char_traitsIS7_ ESaIS7_EEESaISB_EEPT_l]+0x4da) : undefined reference to `boost::program_options::inval id_option_value::invalid_optio n_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::valida te<int, char>(boost::any&, std::vector<std::__cxx11::basi c_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::b asic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, int*, long)':
volk_profile.cc:(.text._ZN5boost15program_options8validateIi cEEvRNS_3anyERKSt6vectorINSt7_ _cxx1112basic_stringIT0_St11ch ar_traitsIS7_ESaIS7_EEESaISB_ EEPT_l[_ZN5boost15program_opti ons8validateIicEEvRNS_3anyERKS t6vectorINSt7__cxx1112basic_ stringIT0_St11char_traitsIS7_ ESaIS7_EEESaISB_EEPT_l]+0x3f8) : undefined reference to `boost::program_options::inval id_option_value::invalid_optio n_value(std::__cxx11::basic_ string<char, std::char_traits<char>, std::allocator<char> > const&)'
CMakeFiles/volk_profile.dir/volk_profile.cc.o:(.rodata._ZTVN 5boost16exception_detail19erro r_info_injectorINS_15program_o ptions20invalid_option_valueEE E[_ZTVN5boost16exception_detai l19error_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._ZTVN 5boost16exception_detail10clon e_implINS0_19error_info_ injectorINS_15program_ options20invalid_option_ valueEEEEE[_ZTVN5boost16except ion_detail10clone_implINS0_19e rror_info_injectorINS_15progra m_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._ZTVN 5boost16exception_detail19erro r_info_injectorINS_15program_o ptions16validation_errorEEE[_Z TVN5boost16exception_detail19e rror_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'