diff mbox series

[kirkstone,1/1] cmake-native: Fix host tool contamination (Bug: 14951)

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

Commit Message

Bernhard Rosenkränzer Oct. 27, 2022, 6:58 p.m. UTC
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(+)

Comments

Michael Opdenacker Oct. 27, 2022, 7:10 p.m. UTC | #1
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 mbox series

Patch

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 () {