matheusgomes28/base64pp

Fix Debug builds for the Module branch

Opened this issue · 0 comments

Debug tools require building with clang-17, but conan's version of GTest does not work with clang-17 builds even after settings libcxx=libstdc++11.

For some reason, the ABI is incompatible:

[build] [1/8] Scanning /home/matheus/development/base64pp/base64pp/base64pp.cpp for CXX dependencies
[build] [2/8] Generating CXX dyndep file base64pp/CMakeFiles/base64pp.dir/CXX.dd
[build] [3/8] Scanning /home/matheus/development/base64pp/tests/base64pp_tests.cpp for CXX dependencies
[build] [4/8] Generating CXX dyndep file tests/CMakeFiles/base64pp_tests.dir/CXX.dd
[build] [5/8] Building CXX object base64pp/CMakeFiles/base64pp.dir/base64pp.cpp.o
[build] [6/8] Linking CXX static library base64pp/libbase64pp.a
[build] [7/8] Building CXX object tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o
[build] [8/8] Linking CXX executable tests/base64pp_tests
[build] FAILED: tests/base64pp_tests 
[build] : && /usr/bin/clang-17 -Werror -Wall -Wextra -pedantic  -m64 -g -m64 tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o -o tests/base64pp_tests -L/home/matheus/.conan2/p/b/gtest27682b8c1f791/p/lib -Wl,-rpath,/home/matheus/.conan2/p/b/gtest27682b8c1f791/p/lib  base64pp/libbase64pp.a  /home/matheus/.conan2/p/b/gtest27682b8c1f791/p/lib/libgmock_main.a  /home/matheus/.conan2/p/b/gtest27682b8c1f791/p/lib/libgmock.a  /home/matheus/.conan2/p/b/gtest27682b8c1f791/p/lib/libgtest_main.a  /home/matheus/.conan2/p/b/gtest27682b8c1f791/p/lib/libgtest.a  -lm  -lpthread && :
[build] /usr/bin/ld: /usr/bin/ld: DWARF error: invalid or unhandled FORM value: 0x23
[build] tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `Base64Decode_FailDecodeNonSize4Bigger_Test::TestBody()':
[build] base64pp_tests.cpp:(.text+0x1d28): undefined reference to `testing::internal::GetBoolAssertionFailureMessage(testing::AssertionResult const&, char const*, char const*, char const*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `Base64Decode_DecodesMissingTwoPads0_Test::TestBody()':
[build] base64pp_tests.cpp:(.text+0x2677): undefined reference to `testing::internal::GetBoolAssertionFailureMessage(testing::AssertionResult const&, char const*, char const*, char const*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `Base64Decode_DecodesMissingTwoPads1_Test::TestBody()':
[build] base64pp_tests.cpp:(.text+0x2b17): undefined reference to `testing::internal::GetBoolAssertionFailureMessage(testing::AssertionResult const&, char const*, char const*, char const*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `Base64Decode_DecodesMissingOnePad0_Test::TestBody()':
[build] base64pp_tests.cpp:(.text+0x2fbe): undefined reference to `testing::internal::GetBoolAssertionFailureMessage(testing::AssertionResult const&, char const*, char const*, char const*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `Base64Decode_DecodesMissingOnePad1_Test::TestBody()':
[build] base64pp_tests.cpp:(.text+0x346e): undefined reference to `testing::internal::GetBoolAssertionFailureMessage(testing::AssertionResult const&, char const*, char const*, char const*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o:base64pp_tests.cpp:(.text+0x39e1): more undefined references to `testing::internal::GetBoolAssertionFailureMessage(testing::AssertionResult const&, char const*, char const*, char const*)' follow
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init':
[build] base64pp_tests.cpp:(.text.startup+0x8f): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x161): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.5':
[build] base64pp_tests.cpp:(.text.startup+0x21f): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x2f1): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.8':
[build] base64pp_tests.cpp:(.text.startup+0x3af): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x481): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.11':
[build] base64pp_tests.cpp:(.text.startup+0x53f): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x611): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.14':
[build] base64pp_tests.cpp:(.text.startup+0x6cf): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x7a1): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.17':
[build] base64pp_tests.cpp:(.text.startup+0x85f): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x931): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.20':
[build] base64pp_tests.cpp:(.text.startup+0x9ef): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0xac1): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.23':
[build] base64pp_tests.cpp:(.text.startup+0xb7f): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0xc51): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.26':
[build] base64pp_tests.cpp:(.text.startup+0xd0f): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0xde1): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.29':
[build] base64pp_tests.cpp:(.text.startup+0xe9f): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0xf71): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.32':
[build] base64pp_tests.cpp:(.text.startup+0x102f): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x1101): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.37':
[build] base64pp_tests.cpp:(.text.startup+0x11bf): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x1291): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.40':
[build] base64pp_tests.cpp:(.text.startup+0x134f): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x1421): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.43':
[build] base64pp_tests.cpp:(.text.startup+0x14df): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x15b1): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.49':
[build] base64pp_tests.cpp:(.text.startup+0x166f): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x1741): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.52':
[build] base64pp_tests.cpp:(.text.startup+0x17ff): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x18d1): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.55':
[build] base64pp_tests.cpp:(.text.startup+0x198f): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x1a61): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.58':
[build] base64pp_tests.cpp:(.text.startup+0x1b1f): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x1bf1): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.61':
[build] base64pp_tests.cpp:(.text.startup+0x1caf): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x1d81): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.64':
[build] base64pp_tests.cpp:(.text.startup+0x1e3f): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x1f11): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.67':
[build] base64pp_tests.cpp:(.text.startup+0x1fcf): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x20a1): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.71':
[build] base64pp_tests.cpp:(.text.startup+0x215f): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x2231): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.74':
[build] base64pp_tests.cpp:(.text.startup+0x22ef): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x23c1): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.76':
[build] base64pp_tests.cpp:(.text.startup+0x247f): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x2551): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.79':
[build] base64pp_tests.cpp:(.text.startup+0x260f): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x26e1): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.81':
[build] base64pp_tests.cpp:(.text.startup+0x279f): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x2871): undefined reference to `operator delete(void*)'
[build] /usr/bin/ld: tests/CMakeFiles/base64pp_tests.dir/base64pp_tests.cpp.o: in function `__cxx_global_var_init.83':
[build] base64pp_tests.cpp:(.text.startup+0x292f): undefined reference to `operator new(unsigned long)'
[build] /usr/bin/ld: base64pp_tests.cpp:(.text.startup+0x2a01): undefined reference to `operator delete(void*)