From: Bernhard Rosenkränzer Date: Thu, 27 Oct 2022 19:47:49 +0000 (+0200) Subject: cmake-native: Fix host tool contamination X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~2712 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2659c735a464c956b4fca0894a5aed27a0fe7e37;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git cmake-native: Fix host tool contamination [v2 hopefully fixes the From: mangling by the ML, no functional changes] Trying to build cmake-native on a host system where curl was built with cmake (resulting in CURLConfig.cmake and friends, which do not use the same naming schemes expected by cmake-native's build process, being installed to a system wide cmake directory like /usr/lib64/cmake/CURL) results in undefined references to all libcurl symbols. The problem is that cmake-native sees and uses the system wide /usr/lib64/cmake/CURL/CURLConfig.cmake, which defines CURL::libcurl and CURL::curl as opposed to setting ${CURL_LIBRARIES} as expected by cmake-native. find_package(CURL) (cmake-native's CMakeLists.txt, line 478) succeeds, but incorrectly uses the system wide CURLConfig.cmake, resulting CMAKE_CURL_LIBRARIES to be set to an empty string (cmake-native's CMakeLists.txt, line 484), causing the cmake-native build to miss -lcurl. The simplest fix is to let cmake know the right value for CURL_LIBRARIES. Making it -lcurl should always work with libcurl-native in recipe-sysroot-native. [YOCTO #14951] Signed-off-by: Bernhard Rosenkränzer Signed-off-by: Alexandre Belloni --- diff --git a/meta/recipes-devtools/cmake/cmake-native_3.24.0.bb b/meta/recipes-devtools/cmake/cmake-native_3.24.0.bb index 722a486f20b..bcc87eb8f22 100644 --- a/meta/recipes-devtools/cmake/cmake-native_3.24.0.bb +++ b/meta/recipes-devtools/cmake/cmake-native_3.24.0.bb @@ -32,6 +32,7 @@ CMAKE_EXTRACONF = "\ -DCMAKE_USE_SYSTEM_LIBRARY_EXPAT=0 \ -DENABLE_ACL=0 -DHAVE_ACL_LIBACL_H=0 \ -DHAVE_SYS_ACL_H=0 \ + -DCURL_LIBRARIES=-lcurl \ " do_configure () {