|
From: | Derek Kozel |
Subject: | Re: [Discuss-gnuradio] [VOLK] Problem building on Fedora 22 |
Date: | Fri, 28 Oct 2016 19:55:03 -0700 |
JoeHi Derek,If I simply did cmake -D_GLIBCXX.... then I got a warning that the flag wasn't used and (of course) the build failed. Doing it the above way threw some warnings but it seems to have worked.
Yeah, that seemed to work. Thanks!!
Specifically, I'm not entirely sure I have my format correctly, but I executed it as:
cmake -DCMAKE_CXX_FLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" .. Also, I had to use the same flag to both build Volk and GR. Although I don't know if the latter picked up my Volk build/install.Thanks,On Fri, Oct 28, 2016 at 6:05 PM, Derek Kozel <address@hidden> wrote: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/e5fec2aaacc8a130bcff 84f1f3bbd9718250f029
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::basi c_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_str ing<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_va lueINSt7__cxx1112basic_stringI cSt11char_traitsIcESaIcEEEcE6x parseERNS_3anyERKSt6vectorIS7_ SaIS7_EE[_ZNK5boost15program_ options11typed_valueINSt7__ cxx1112basic_stringIcSt11char_ traitsIcESaIcEEEcE6xparseERNS_ 3anyERKSt6vectorIS7_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_strin gIcSt11char_traitsIcESaIcEEESa ISB_EE[_ZNK5boost15program_ options11typed_valueIbcE6xpars eERNS_3anyERKSt6vectorINSt7__ cxx1112basic_stringIcSt11char_ traitsIcESaIcEEESaISB_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>::ex tra_parser(boost::function1<st d::pair<std::__cxx11::basic_st ring<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_com mand_line_parserIcE12extra_par serENS_9function1ISt4pairINSt7 __cxx1112basic_stringIcSt11cha r_traitsIcESaIcEEESA_ERKSA_EE[ _ZN5boost15program_ options25basic_command_line_ parserIcE12extra_parserENS_ 9function1ISt4pairINSt7__ cxx1112basic_stringIcSt11char_ traitsIcESaIcEEESA_ERKSA_EE]+ 0x46): undefined reference to `boost::program_options::detai l::cmdline::set_additional_par ser(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>::ba sic_command_line_parser(int, char const* const*)':
volk_profile.cc:(.text._ZN5boost15program_options25basic_com mand_line_parserIcEC2EiPKPKc[_ ZN5boost15program_options25bas ic_command_line_parserIcEC5EiP KPKc]+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_com mand_line_parserIcEC2EiPKPKc[_ ZN5boost15program_options25bas ic_command_line_parserIcEC5EiP KPKc]+0x1e7): undefined reference to `boost::program_options::detai l::cmdline::cmdline(std::vecto r<std::__cxx11::basic_string<c har, 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_str ing<char, std::char_traits<char>, std::allocator<char> >, char>::name() const':
volk_profile.cc:(.text._ZNK5boost15program_options11typed_va lueINSt7__cxx1112basic_stringI cSt11char_traitsIcESaIcEEEcE4n ameEv[_ZNK5boost15program_ options11typed_valueINSt7__cxx 1112basic_stringIcSt11char_tra itsIcESaIcEEEcE4nameEv]+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<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_stri ng<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<cha r, 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<cha r, 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<cha r, 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<cha r, 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<cha r, std::char_traits<char>, std::allocator<char> > const&) const'
CMakeFiles/volk_profile.dir/volk_profile.cc.o:volk_profile.c c:(.text.startup+0x75d): more undefined references to `boost::program_options::abstr act_variables_map::operator[]( std::__cxx11::basic_string<cha r, 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_E EPT_l[_ZN5boost15program_optio ns8validateIfcEEvRNS_3anyERKSt 6vectorINSt7__cxx1112basic_str ingIT0_St11char_traitsIS7_ESaI S7_EEESaISB_EEPT_l]+0x4da): undefined reference to `boost::program_options::inval id_option_value::invalid_optio n_value(std::__cxx11::basic_st ring<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_E EPT_l[_ZN5boost15program_optio ns8validateIicEEvRNS_3anyERKSt 6vectorINSt7__cxx1112basic_str ingIT0_St11char_traitsIS7_ESaI S7_EEESaISB_EEPT_l]+0x3f8): undefined reference to `boost::program_options::inval id_option_value::invalid_optio n_value(std::__cxx11::basic_st ring<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_15pr ogram_options20invalid_option_ valueEEE]+0x30): undefined reference to `boost::program_options::error _with_option_name::substitute_ placeholders(std::__cxx11::bas ic_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_inject orINS_15program_options20inval id_option_valueEEEEE[_ ZTVN5boost16exception_ detail10clone_implINS0_19error _info_injectorINS_15program_ options20invalid_option_valueE EEEE]+0x38): undefined reference to `boost::program_options::error _with_option_name::substitute_ placeholders(std::__cxx11::bas ic_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_15progra m_options16validation_errorEEE ]+0x30): undefined reference to `boost::program_options::error _with_option_name::substitute_