On Thu, 2024-05-23 at 12:54 +0000, Emil Kronborg via lists.openembedded.org 
wrote:
> Using OVERRIDES in the check generates false positives in some
> scenarios, for example when building binaries for an SDK supposed to run
> on a 64-bit host. Therefore, it is more correct to use HOST_ARCH for the
> check instead.
> 
>     $ bitbake -c do_package_qa gcc-cross-canadian-arm
>     (...)
>     
> /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++
>  uses 32-bit api 'localtime'
>     
> /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++
>  uses 32-bit api 'fcntl'
>     
> /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++
>  uses 32-bit api 'lstat'
>     
> /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++
>  uses 32-bit api 'wait4'
>     
> /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++
>  uses 32-bit api 'gettimeofday'
>     
> /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++
>  uses 32-bit api 'stat'
>     
> /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++
>  uses 32-bit api 'fstat'
>     
> /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++
>  uses 32-bit api 'ioctl'
>     
> /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++
>  uses 32-bit api 'time'
>     
> /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++
>  uses 32-bit api 'gmtime'
>     Suppress with INSANE_SKIP = "32bit-time"
> 
> Signed-off-by: Emil Kronborg <[email protected]>
> ---
>  meta/classes-global/insane.bbclass | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/meta/classes-global/insane.bbclass 
> b/meta/classes-global/insane.bbclass
> index 99736830b9a8..bd2328601676 100644
> --- a/meta/classes-global/insane.bbclass
> +++ b/meta/classes-global/insane.bbclass
> @@ -515,8 +515,7 @@ def check_32bit_symbols(path, packagename, d, elf, 
> messages):
>      Check that ELF files do not use any 32 bit time APIs from glibc.
>      """
>      thirtytwo_bit_time_archs = {'arm','armeb','mipsarcho32','powerpc','x86'}
> -    overrides = set(d.getVar('OVERRIDES').split(':'))
> -    if not (thirtytwo_bit_time_archs & overrides):
> +    if d.getVar('HOST_ARCH') not in thirtytwo_bit_time_archs:
>          return
> 

This is not correct, e.g. HOST_ARCH does not always equal "x86" for 32
bit x86 builds.

$ MACHINE=qemux86 bitbake -e | grep ^OVERRIDES= -C 2
# pre-expansion value:
#   
"${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:pn-${PN}:layer-${FILE_LAYERNAME}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${CLASSOVERRIDE}${LIBCOVERRIDE}:forcevariable"
OVERRIDES="linux:i686:pn-defaultpkgname:layer-config:x86:qemuall:qemux86:poky:poky-altcfg:class-target:libc-glibc:forcevariable"

i.e. the x86 comes from MACHINEOVERRIDES.

Cheers,

Richard


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#199796): 
https://lists.openembedded.org/g/openembedded-core/message/199796
Mute This Topic: https://lists.openembedded.org/mt/106261505/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to