From 30422956ca7c4aa8f0ce9400d24dba063ab9662a Mon Sep 17 00:00:00 2001 From: Tomas Pecka <peckato1@fit.cvut.cz> Date: Thu, 30 Dec 2021 10:43:52 +0100 Subject: [PATCH] cmake: Link alib2cli with CMAKE_DL_LIBS OpenSuse Leap package builds fail with undefined reference to dlclose and dlopen. The -ldl link flag is missing (see the error below). Let's fix that by adding the ${CMAKE_DL_LIBS} link target [1] to alib2cli. /usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: CMakeFiles/alib2cli.dir/src/common/LibraryLoader.cpp.o: in function `cli::LibraryLoader::Library::unload()': /build/pkg/build/pkgs/opensuse-leap-15.3/algorithms-library-snapshot-0.0.0.r1277.gf2a2ccf62-1/rpmbuild/BUILD/algorithms-library-v0.0.0.r1277.gf2a2ccf62/alib2cli/src/common/LibraryLoader.h:44: undefined reference to `dlclose' /usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: /build/pkg/build/pkgs/opensuse-leap-15.3/algorithms-library-snapshot-0.0.0.r1277.gf2a2ccf62-1/rpmbuild/BUILD/algorithms-library-v0.0.0.r1277.gf2a2ccf62/alib2cli/src/common/LibraryLoader.h:44: undefined reference to `dlclose' /usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: CMakeFiles/alib2cli.dir/src/common/LibraryLoader.cpp.o: in function `cli::LibraryLoader::Library::load()': /build/pkg/build/pkgs/opensuse-leap-15.3/algorithms-library-snapshot-0.0.0.r1277.gf2a2ccf62-1/rpmbuild/BUILD/algorithms-library-v0.0.0.r1277.gf2a2ccf62/alib2cli/src/common/LibraryLoader.h:37: undefined reference to `dlopen' /usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: /build/pkg/build/pkgs/opensuse-leap-15.3/algorithms-library-snapshot-0.0.0.r1277.gf2a2ccf62-1/rpmbuild/BUILD/algorithms-library-v0.0.0.r1277.gf2a2ccf62/alib2cli/src/common/LibraryLoader.h:39: undefined reference to `dlerror' collect2: error: ld returned 1 exit status make[2]: *** [alib2cli/CMakeFiles/alib2cli.dir/build.make:500: alib2cli/libalib2cli.so.0.0.0] Error 1 make[1]: *** [CMakeFiles/Makefile2:1017: alib2cli/CMakeFiles/alib2cli.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:150: all] Error 2 [1] https://cmake.org/cmake/help/latest/variable/CMAKE_DL_LIBS.html --- alib2cli/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/alib2cli/CMakeLists.txt b/alib2cli/CMakeLists.txt index 12a8e4ff67..f0daf3b8ba 100644 --- a/alib2cli/CMakeLists.txt +++ b/alib2cli/CMakeLists.txt @@ -1,6 +1,6 @@ project(alt-libcli VERSION ${CMAKE_PROJECT_VERSION}) find_package(LibXml2 REQUIRED) alt_library(alib2cli - DEPENDS alib2xml alib2common alib2abstraction alib2measure alib2std + DEPENDS alib2xml alib2common alib2abstraction alib2measure alib2std ${CMAKE_DL_LIBS} TEST_DEPENDS LibXml2::LibXml2 stdc++fs ) -- GitLab