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

Reply via email to