DARMA-tasking / vt

DARMA/vt => Virtual Transport
Other
35 stars 8 forks source link

Undefined reference to makeLB in collection_extended #2319

Closed nlslatt closed 1 month ago

nlslatt commented 2 months ago

Describe the bug In tests/collection_extended on Gitlab CI with Intel 2023.2.0:

test_lb.extended.cc:(.text+0xe9b): undefined reference to `vt::objgroup::proxy::Proxy<vt::vrt::collection::lb::BaseLB> vt::vrt::collection::balance::LBManager::makeLB<vt::vrt::collection::lb::TemperedWMin>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
cz4rs commented 1 month ago

Reproduced locally with Intel 2024.2.0:

/opt/intel/oneapi/compiler/2024.2/bin/icpx  -rdynamic -Wl,-rpath -Wl,/usr/lib64/mpich/lib -Wl,--enable-new-dtags tests/CMakeFiles/collection_extended.dir/unit/main.cc.o tests/CMakeFiles/collection_extended.dir/unit/collection/test_broadcast.extended.cc.o tests/CMakeFiles/collection_extended.dir/unit/collection/test_checkpoint.extended.cc.o tests/CMakeFiles/collection_extended.dir/unit/collection/test_collection_group.extended.cc.o tests/CMakeFiles/collection_extended.dir/unit/collection/test_construct_no_idx.extended.cc.o tests/CMakeFiles/collection_extended.dir/unit/collection/test_index_types.extended.cc.o tests/CMakeFiles/collection_extended.dir/unit/collection/test_insert.extended.cc.o tests/CMakeFiles/collection_extended.dir/unit/collection/test_lb.extended.cc.o tests/CMakeFiles/collection_extended.dir/unit/collection/test_lb_lite.extended.cc.o tests/CMakeFiles/collection_extended.dir/unit/collection/test_model_per_collection.extended.cc.o tests/CMakeFiles/collection_extended.dir/unit/collection/test_send.extended.cc.o -o tests/collection_extended  -Wl,-rpath,/usr/lib64/mpich/lib  lib/brotli/libbrotlicommon-static.a  lib/brotli/libbrotlidec-static.a  lib/brotli/libbrotlienc-static.a  lib/libfort/lib/libfort.a  lib/libgtest.a  -lunwind  src/libvt-debug.a  -ldl  /usr/lib64/libz.so  lib/fmt/libfmt-vtd.a  lib/EngFormat-Cpp/libEngFormat-Cpp.a  lib/checkpoint/src/libmagistrate.a  lib/brotli/libbrotlidec-static.a  lib/brotli/libbrotlienc-static.a  lib/brotli/libbrotlicommon-static.a  lib/libfort/lib/libfort.a  -lunwind  -ldl  /usr/lib64/mpich/lib/libmpicxx.so  /usr/lib64/mpich/lib/libmpi.so  /usr/lib64/libz.so && :
/usr/bin/ld: tests/CMakeFiles/collection_extended.dir/unit/collection/test_lb.extended.cc.o: in function `vt::tests::unit::lb::TestLoadBalancerOther_test_make_graph_symmetric_Test::TestBody()':
test_lb.extended.cc:(.text+0xc8a): undefined reference to `vt::objgroup::proxy::Proxy<vt::vrt::collection::lb::BaseLB> vt::vrt::collection::balance::LBManager::makeLB<vt::vrt::collection::lb::TemperedWMin>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
cz4rs commented 1 month ago

Note: this is not specific to TemperedWMin. The same error shows up if I use RotateLB or TemperedLB in test_make_graph_symmetric test. Commenting out the test is enough for the build to pass.