[OE-core] [PATCH] cmake.bbclass: Exclude native sysroot from CMAKE_FIND_ROOT_PATH

Khem Raj raj.khem at gmail.com
Mon Oct 31 16:25:13 UTC 2016


> On Oct 31, 2016, at 5:48 AM, Andreas Müller <schnitzeltony at googlemail.com> wrote:
> 
> On Sun, Oct 30, 2016 at 9:07 PM, Andreas Müller
> <schnitzeltony at googlemail.com> wrote:
>> On Sun, Oct 30, 2016 at 6:38 PM, Khem Raj <raj.khem at gmail.com> wrote:
>>> On Sun, Oct 30, 2016 at 6:34 AM, Andreas Müller
>>> <schnitzeltony at googlemail.com> wrote:
>>>> On Sat, Oct 29, 2016 at 10:47 AM, Khem Raj <raj.khem at gmail.com> wrote:
>>>>> This has been cause of issue where we were getting both usr/include
>>>>> dirs ( from target as well as native sysroot) added to compiler
>>>>> flags.
>>>>> 
>>>>> CXX_INCLUDES in final flags.cmake would include
>>>>> -I<target-sysroot>/usr/include -I<native-sysroot>/usr/include
>>>>> most of the time it would work since headers are mostly
>>>>> common but netflix package failed to compile since one of
>>>>> the headers was including curl headers which it could not
>>>>> find in target sysroot and it went to next include path
>>>>> and found it in native sysroot which is not what we want
>>>>> when doing cross compile.
>>>>> 
>>>>> As per https://cmake.org/Wiki/CMake_Cross_Compiling
>>>>> never search for programs in target sysroot but search
>>>>> for packages,libs,includes only.
>>>>> 
>>>>> Signed-off-by: Khem Raj <raj.khem at gmail.com>
>>>>> ---
>>>>> meta/classes/cmake.bbclass | 3 ++-
>>>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>>> 
>>>>> diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass
>>>>> index 3e762de..3e8df37 100644
>>>>> --- a/meta/classes/cmake.bbclass
>>>>> +++ b/meta/classes/cmake.bbclass
>>>>> @@ -25,6 +25,7 @@ OECMAKE_PERLNATIVE_DIR ??= ""
>>>>> OECMAKE_EXTRA_ROOT_PATH ?= ""
>>>>> 
>>>>> OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "ONLY"
>>>>> +OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM_class-target = "NEVER"
>>>> ^ Split this into a second patch please you are changing two more or
>>>> less unrelated settings in one patch.
>>> 
>>> These changes are related and should stay together in same patch
>>> otherwise it will break.
>>> 
>>>>> OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM_class-native = "BOTH"
>>>>> 
>>>>> EXTRA_OECMAKE_append = " ${PACKAGECONFIG_CONFARGS}"
>>>>> @@ -60,7 +61,7 @@ set( CMAKE_CXX_LINK_FLAGS "${OECMAKE_CXX_LINK_FLAGS}" CACHE STRING "LDFLAGS" )
>>>>> 
>>>>> # only search in the paths provided so cmake doesnt pick
>>>>> # up libraries and tools from the native build machine
>>>>> -set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE} ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR} ${OECMAKE_EXTRA_ROOT_PATH} ${EXTERNAL_TOOLCHAIN})
>>>>> +set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR} ${OECMAKE_EXTRA_ROOT_PATH} ${EXTERNAL_TOOLCHAIN})
>>>> ^ Are you sure this doesn't break native builds? I am a bit scared: In
>>>> meta-qt5-extra I have lot's of native builds for build-helpers. KDE
>>>> guys seem to prefer this over shell scripts...
>>> 
>>> It hasnt broken anything for my world builds thus far. I dont use
>>> meta-qt5-extras though. So testing help is welcome.
>> I'll give it a meta-qt5-extra world build and let you know
>> 
> Huge fallout:
> 
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-kde/kf5/tier1/karchive/karchive.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-kde/kf5/tier2/kdoctools/kdoctools-native.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-kde/kf5/tier1/kwindowsystem/kwindowsystem.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-kde/kf5/tier1/kcodecs/kcodecs.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-kde/kf5/tier1/kconfig/kconfig.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-kde/kf5/tier1/kguiaddons/kguiaddons.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-kde/kf5/tier1/kdbusaddons/kdbusaddons.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-kde/kf5/tier1/kitemviews/kitemviews.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-kde/kf5/tier1/attica/attica.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-kde/kf5/tier1/sonnet/sonnet.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-kde/kf5/tier1/kcoreaddons/kcoreaddons-native.bb:do_compile
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-kde/kf5/tier1/kidletime/kidletime.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-kde/kf5/tier1/kwayland/kwayland.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-lxqt/libqtxdg/libqtxdg_git.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-kde/kf5/tier1/threadweaver/threadweaver.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-kde/kf5/tier1/networkmanager-qt/networkmanager-qt.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-kde/kf5/tier1/kdnssd/kdnssd.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-kde/kf5/tier1/modemmanager-qt/modemmanager-qt.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-misc/recipes-multimedia/projectm/projectm_git.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-kde/kf5/tier1/kplotting/kplotting.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-kde/kf5/tier1/breeze-icons/breeze-icons.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-lxqt/compton-conf/compton-conf_git.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-lxqt/qterminal/qterminal_git.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-lxqt/obconf-qt/obconf-qt_git.bb:do_configure
>  /home/superandy/data/oe-core/sources/meta-qt5-extra/recipes-misc/recipes-multimedia/mixxx/mixxx_git.bb:do_compile


> 
> so please don't apply this one

Not yet, but specify both native includedir and target includedir while building something is broken at core
that must be fixed in anycase. May be these fallouts are just latent issues that were papered over in past.
Can you upload the logs somewhere ?

> 
> Andreas

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 204 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20161031/7eba1f96/attachment-0002.sig>


More information about the Openembedded-core mailing list