Message ID | 20221027185853.2005941-1-bero@baylibre.com |
---|---|
State | New, archived |
Headers | show |
Series | [kirkstone,1/1] cmake-native: Fix host tool contamination (Bug: 14951) | expand |
Hi Bero Thanks for the patch! On 10/27/22 20:58, Bernhard Rosenkränzer via lists.openembedded.org wrote: > 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. > > Signed-off-by: Bernhard Rosenkränzer <bero@baylibre.com> > --- > meta/recipes-devtools/cmake/cmake-native_3.22.3.bb | 1 + > 1 file changed, 1 insertion(+) There's a problem with the way your patches are received on the Yocto Project mailing lists. I used to have it too. If I apply your patch through "git am", the author of the commit will be: Bernhard Rosenkränzer via lists.openembedded.org <bero=lindev.ch@lists.openembedded.org> instead of Bernhard Rosenkränzer <bero@baylibre.com> That's because of the configuration of the Yocto Project mailing lists, if I understood correctly. Because of this issue, the maintainer has to manually fix this field when accepting your patch. Worse, if he doesn't catch this, that's harder to fix afterwards. You should be able to fix this by running: git config --global sendemail.from "bero@baylibre.com" This should add a "From" field to the sent patch which "git am" should be able to match with your name. At least this worked for me. See https://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded#Sending_using_git-send-email Could you try to send an update? Thanks in advance Michael.
diff --git a/meta/recipes-devtools/cmake/cmake-native_3.22.3.bb b/meta/recipes-devtools/cmake/cmake-native_3.22.3.bb index ee1f7761c4..45ea78ae00 100644 --- a/meta/recipes-devtools/cmake/cmake-native_3.22.3.bb +++ b/meta/recipes-devtools/cmake/cmake-native_3.22.3.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 () {
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. Signed-off-by: Bernhard Rosenkränzer <bero@baylibre.com> --- meta/recipes-devtools/cmake/cmake-native_3.22.3.bb | 1 + 1 file changed, 1 insertion(+)