osrf/osrf_testing_tools_cpp

ROS2 undefined symbols for arm64 linker error

CursedRock17 opened this issue · 0 comments

Previously I had ran into some linking errors with this library on MacOS Ventura (13.2.1) with SIP disabled that had stemmed from the actual memory tools in the osrf_testing_tools_cpp package.
Undefined symbols for architecture arm64: "osrf_testing_tools_cpp::memory_tools::on_unexpected_calloc(std::__1::variant<std::__1::function<void (osrf_testing_tools_cpp::memory_tools::MemoryToolsService&)>, std::__1::function<void ()>, std::nullptr_t>)", referenced from: performance_test_fixture::PerformanceTest::SetUp(benchmark::State&) in performance_test_fixture.cpp.o

This error had to be related to the actual function as other functions such as initialize() had worked beforehand. Currently CMake defaults to c++11, while std::variant is a c++17 feature and after forking and updating the version in both osrf_testing folders, by changing set(CMAKE_CXX_STANDARD) from 11 to 17 it worked. Though shortly after there was a problem in the performance_test_fixture package which again just required a CMake Standard update. I was wondering if it would be possible to do a simple pull request just updating those values, or if it would break other machines?