Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

undefined reference to `Halide::Internal::Introspection:: #2532

Closed
shipingli opened this issue Nov 13, 2017 · 10 comments
Closed

undefined reference to `Halide::Internal::Introspection:: #2532

shipingli opened this issue Nov 13, 2017 · 10 comments

Comments

@shipingli
Copy link

I am trying to build HelloeHexagon on Linux Halide 2.0, stuck on below error. No idea on how to proceed, any help?

Thanks

  • g++ -std=c++11 -I /home/Halide/include -I/home/Halide/support -g -fno-rtti pipeline.cpp /home/Halide/tools/GenGen.cpp -g /home/Halide/lib/libHalide.a -o bin/pipeline -ldl -lpthread -lz
    /tmp/ccTtcODD.o: In function Halide::Internal::check_introspection(void 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&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)': /home/Halide/include/Halide.h:415: undefined reference to Halide::Internal::Introspection::get_source_locationabi:cxx11'
    /home/Halide/include/Halide.h:416: undefined reference to `Halide::Internal::Introspection::get_variable_name(void const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)'
@abadams
Copy link
Member

abadams commented Nov 13, 2017

Looks like a C++ abi mismatch issue. What g++ version are you using, and how did you acquire or compile Halide?

@shipingli
Copy link
Author

I got Halide 2.0 from https://developer.qualcomm.com/software/hexagon-dsp-sdk/tools, and I am using gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)

What version is required?

Thanks

Shiping

@abadams
Copy link
Member

abadams commented Nov 14, 2017

Ah, then it depends on how the qualcomm folks compiled their libHalide. I'm guessing they used an older compiler. I would just checkout and compile Halide from source.

@shipingli
Copy link
Author

Seems to me some libraries or headers not properly included in Halide 2.0. Are we going to migrate everything to 2.0? What if I just want to run apps using ARM/Neon inside Qualcomm chip?

@abadams
Copy link
Member

abadams commented Nov 14, 2017

I'll ping one of the qualcomm people @ronlieb

@shipingli
Copy link
Author

Thanks, I also tried to communicate with them yesterday. They asked g++ version too.

@ronlieb
Copy link

ronlieb commented Nov 14, 2017 via email

@khourig
Copy link

khourig commented Nov 16, 2017

This is the dual-ABI thing again. TLDR: compile your code with -D _GLIBCXX_USE_CXX11_ABI=0

https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html

@shipingli
Copy link
Author

I am using HALIDE_Tools/2.1 now, any idea what g++ version I should use? or is there a solution that does not require the end user using old g++?

Thanks

@shipingli
Copy link
Author

Sorry, did not read it clearly, using -D _GLIBCXX_USE_CXX11_ABI=0 fixed issue

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants