From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7197016923412889600 X-Received: by 2002:a5d:4b47:0:b0:2c5:84f3:62b6 with SMTP id w7-20020a5d4b47000000b002c584f362b6mr370474wrs.740.1676883921318; Mon, 20 Feb 2023 01:05:21 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6000:1786:b0:2c5:55ca:3a3b with SMTP id e6-20020a056000178600b002c555ca3a3bls43489wrg.1.-pod-prod-gmail; Mon, 20 Feb 2023 01:05:19 -0800 (PST) X-Google-Smtp-Source: AK7set+6LYKbl9rRzD06kLb6k/bX/SlrOYnVcQGxq0B6+G2sG2KNDjewZJM1kJuXaRug4+T5FXXY X-Received: by 2002:adf:f3ce:0:b0:2c6:8dfd:d2bd with SMTP id g14-20020adff3ce000000b002c68dfdd2bdmr1478494wrp.15.1676883919824; Mon, 20 Feb 2023 01:05:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676883919; cv=none; d=google.com; s=arc-20160816; b=CpQJpv8UqIU7VXp1Nhl/RHNhTNhtpHKwov1f4epKP5cyMIF8si7l3Kixh2z6kfr1+5 J22nvf3EYVAAFlXB59LgAlP87UytRJW2ASLHjNKKT43epQOUlveqHd8KFKEpPAhq8yJg CnrYMuASPEkZNF3wF8FXMvf7fc89tKTmTtFmlO0lNqk6riF+t1R9ZSXVpET6Wuklhjfy +siGMDhwVnoetN+Omm9rGtn3S4iZ+TYzySFqrP8AWvZm3K3enoFdD+mDSdzCvIx6NiHc +8EZssh65JtbYG3u4nYfyN/QLdbKBSMSkOM3l+M8PrQLCV8hBFsbjV9y0Yt3Asty0YDt gjuw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=feedback-id:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=RrISQiMduWPr7jRzTH1o0MF0c3YYBd/vYe/WIxNsfcw=; b=Lf0wlEOPvFHhVC5pAaPci6cr9wwTXyKl95WlY60pQSHJC39/5eFrB0+rZBXMdKn622 mGh0fNfmFTwr2I0+RSGiqx4fYXup9Pi+W33FpeswnIWUjoeN4xsktrtcJgxDcpFz0afJ w3e4jvl0J95/e+tQK+HGzX1FyRLzcy1JVRqerf3/5BbAQPXca/aDOnamFvPu3vZ/UwuK MtacxR/INpBPbE8H5vsbKp85DVpQ06ZSje5D9z48784P70UA1DPMJQN8W6Jlqnfonu4j ejnLtp+t09o59KzXK1m6kJQlECkVPdZdsaMZp2oZCOI6vcUTZ6D++HUenGEdmgPv1Gbu Sq1w== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=O5i6kVHV; spf=pass (google.com: domain of fm-526363-2023022009051950342896cd3236b62b-eamtnh@rts-flowmailer.siemens.com designates 185.136.64.225 as permitted sender) smtp.mailfrom=fm-526363-2023022009051950342896cd3236b62b-eAMTNh@rts-flowmailer.siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from mta-64-225.siemens.flowmailer.net (mta-64-225.siemens.flowmailer.net. [185.136.64.225]) by gmr-mx.google.com with ESMTPS id bu26-20020a056000079a00b002c56aba93edsi14071wrb.4.2023.02.20.01.05.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 Feb 2023 01:05:19 -0800 (PST) Received-SPF: pass (google.com: domain of fm-526363-2023022009051950342896cd3236b62b-eamtnh@rts-flowmailer.siemens.com designates 185.136.64.225 as permitted sender) client-ip=185.136.64.225; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=O5i6kVHV; spf=pass (google.com: domain of fm-526363-2023022009051950342896cd3236b62b-eamtnh@rts-flowmailer.siemens.com designates 185.136.64.225 as permitted sender) smtp.mailfrom=fm-526363-2023022009051950342896cd3236b62b-eAMTNh@rts-flowmailer.siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: by mta-64-225.siemens.flowmailer.net with ESMTPSA id 2023022009051950342896cd3236b62b for ; Mon, 20 Feb 2023 10:05:19 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=adriaan.schmidt@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=RrISQiMduWPr7jRzTH1o0MF0c3YYBd/vYe/WIxNsfcw=; b=O5i6kVHVIvK6BftMjCuPyR8xCkgyDtc3IzGrxnSfabjLV12jNOM0B0g8RzjhtZXmANUBu5 NkgtrnexPqr4l2AmLDvcW5PSOXt6CAVSWqvMKgcU48O/OTIudykIMyFDUg2hW2AEBxgQSMwa 7+bsNwxj/OHGjisd73YqH2mLPxqPI=; From: Adriaan Schmidt To: isar-users@googlegroups.com Cc: Adriaan Schmidt Subject: [PATCH v2 3/4] remove obsolete compat-arch override Date: Mon, 20 Feb 2023 10:05:10 +0100 Message-Id: <20230220090511.2524881-4-adriaan.schmidt@siemens.com> In-Reply-To: <20230220090511.2524881-1-adriaan.schmidt@siemens.com> References: <20230220090511.2524881-1-adriaan.schmidt@siemens.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-526363:519-21489:flowmailer X-TUID: dzexDnOtakIF The compat-arch override is no longer needed, as PACKAGE_ARCH is controlled by DEPENDing on -compat. Also change the compat test: adding the compat package now happens via IMAGE_INSTALL in the config. Signed-off-by: Adriaan Schmidt --- meta-isar/recipes-app/hello-isar/hello-isar.bb | 3 --- meta-isar/recipes-app/libhello/libhello.bb | 3 --- meta/classes/multiarch.bbclass | 11 +++++++++++ meta/conf/bitbake.conf | 3 +-- .../recipes-core/isar-bootstrap/isar-bootstrap.inc | 2 ++ .../sbuild-chroot/sbuild-chroot.inc | 14 ++++++++------ testsuite/cibuilder.py | 2 ++ 7 files changed, 24 insertions(+), 14 deletions(-) diff --git a/meta-isar/recipes-app/hello-isar/hello-isar.bb b/meta-isar/recipes-app/hello-isar/hello-isar.bb index 39ddecb9..7d9f8322 100644 --- a/meta-isar/recipes-app/hello-isar/hello-isar.bb +++ b/meta-isar/recipes-app/hello-isar/hello-isar.bb @@ -20,7 +20,4 @@ SRC_URI = " \ file://yet-another-change.txt;apply=yes;striplevel=0" SRCREV = "a18c14cc11ce6b003f3469e89223cffb4016861d" -# NOTE: This is just to test 32-bit building on 64-bit archs. -PACKAGE_ARCH:compat-arch = "${COMPAT_DISTRO_ARCH}" - inherit dpkg diff --git a/meta-isar/recipes-app/libhello/libhello.bb b/meta-isar/recipes-app/libhello/libhello.bb index 3770fdb4..8b10842f 100644 --- a/meta-isar/recipes-app/libhello/libhello.bb +++ b/meta-isar/recipes-app/libhello/libhello.bb @@ -13,7 +13,4 @@ PV = "0.1-98f2e41" SRC_URI = "git://github.com/ilbers/libhello.git;protocol=https;branch=master;destsuffix=${P}" SRCREV = "98f2e41e7d05ab8d19b0c5d160b104b725c8fd93" -# NOTE: This is just to test 32-bit building on 64-bit archs. -PACKAGE_ARCH:compat-arch = "${COMPAT_DISTRO_ARCH}" - inherit dpkg diff --git a/meta/classes/multiarch.bbclass b/meta/classes/multiarch.bbclass index 09aaff52..791f8e0d 100644 --- a/meta/classes/multiarch.bbclass +++ b/meta/classes/multiarch.bbclass @@ -7,6 +7,15 @@ BBCLASSEXTEND += "native compat" BPN = "${PN}" python multiarch_virtclass_handler() { + # In compat/native builds, ${PN} includes the -compat/-native suffix, + # so recipe-writers need to be careful when using it. Most of the time, + # they probably want to use ${BPN}, and in general, it's their responsibility + # to do so. If they don't, then it's ok for the build of the compat/native + # variant to fail. However, some variables are evaluated at parse time, + # and this will break the recipe even when compat/native is not requested. + # e.g., SRC_URI="file://${PN}" will try to checksum the local file at + # parse time, and parsing always happens for all build variants. So in those + # few variables, we automatically replace ${PN} with ${BPN}. def fixup_pn_in_vars(d): vars = 'SRC_URI FILESPATH'.split() for var in vars: @@ -14,6 +23,8 @@ python multiarch_virtclass_handler() { if v is not None: d.setVar(var, v.replace('${PN}', '${BPN}')) + # When building compat/native, the corresponding suffix needs to be + # propagated to all bitbake dependency definitions. def fixup_depends(suffix, d): vars = 'PROVIDES RPROVIDES DEPENDS RDEPENDS'.split() for var in vars: diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index dd21319a..0c79a5b6 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -67,9 +67,8 @@ KERNEL_FILE:mipsel ?= "vmlinux" KERNEL_FILE:riscv64 ?= "vmlinux" KERNEL_FILE:arm64 ?= "vmlinux" -OVERRIDES = "${PACKAGE_ARCH}:${COMPAT_OVERRIDE}:${MACHINE}:${DISTRO}:${BASE_DISTRO_CODENAME}:forcevariable" +OVERRIDES = "${PACKAGE_ARCH}:${MACHINE}:${DISTRO}:${BASE_DISTRO_CODENAME}:forcevariable" FILESOVERRIDES = "${PACKAGE_ARCH}:${MACHINE}" -COMPAT_OVERRIDE = "${@'compat-arch' if d.getVar('ISAR_ENABLE_COMPAT_ARCH') == '1' else ''}" # Setting default QEMU_ARCH variables for different DISTRO_ARCH: QEMU_ARCH:amd64 = "x86_64" diff --git a/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc b/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc index 99d75e21..21a2d92f 100644 --- a/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc +++ b/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc @@ -274,6 +274,8 @@ do_bootstrap[dirs] = "${DEPLOY_DIR_BOOTSTRAP}" do_bootstrap[depends] = "base-apt:do_cache isar-apt:do_cache_config" do_bootstrap[network] = "${TASK_USE_NETWORK_AND_SUDO}" +inherit compat + do_bootstrap() { if [ "${ISAR_ENABLE_COMPAT_ARCH}" = "1" ]; then if [ -z "${COMPAT_DISTRO_ARCH}" ]; then diff --git a/meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc b/meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc index fb061dac..fd8bb648 100644 --- a/meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc +++ b/meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc @@ -9,6 +9,7 @@ LIC_FILES_CHKSUM = "file://${LAYERDIR_core}/licenses/COPYING.GPLv2;md5=751419260 PV = "1.0" inherit rootfs +inherit compat python() { distro_gcc = d.getVar('DISTRO_GCC') @@ -20,18 +21,19 @@ python() { d.appendVar('SBUILD_CHROOT_PREINSTALL_COMMON', ' libstdc++-{}-dev:{}'.format(distro_gcc, distro_arch)) - if d.getVar('ISAR_ENABLE_COMPAT_ARCH') == '1': - compat_arch = d.getVar('COMPAT_DISTRO_ARCH') + if d.getVar('ISAR_ENABLE_COMPAT_ARCH') == '1': + compat_arch = d.getVar('COMPAT_DISTRO_ARCH') + d.appendVar('SBUILD_CHROOT_COMPAT_PREINSTALL', + ' libc6-dev:{}'.format(compat_arch)) + d.appendVar('SBUILD_CHROOT_COMPAT_PREINSTALL', + ' crossbuild-essential-{}'.format(compat_arch)) + if d.getVar('DISTRO_GCC'): d.appendVar('SBUILD_CHROOT_COMPAT_PREINSTALL', ' libgcc-{}-dev:{}'.format(distro_gcc, compat_arch)) d.appendVar('SBUILD_CHROOT_COMPAT_PREINSTALL', ' libstdc++-{}-dev:{}'.format(distro_gcc, compat_arch)) } -SBUILD_CHROOT_COMPAT_PREINSTALL:compat-arch = " \ - libc6-dev:${COMPAT_DISTRO_ARCH} \ - crossbuild-essential-${COMPAT_DISTRO_ARCH}" - SBUILD_CHROOT_PREINSTALL_COMMON = " \ ${SBUILD_CHROOT_COMPAT_PREINSTALL} \ libc6-dev:${DISTRO_ARCH} \ diff --git a/testsuite/cibuilder.py b/testsuite/cibuilder.py index 72522f4d..f0ea2702 100755 --- a/testsuite/cibuilder.py +++ b/testsuite/cibuilder.py @@ -96,7 +96,9 @@ class CIBuilder(Test): with open(self.build_dir + '/conf/ci_build.conf', 'w') as f: if compat_arch: f.write('ISAR_ENABLE_COMPAT_ARCH:amd64 = "1"\n') + f.write('IMAGE_INSTALL:append:amd64 = " hello-isar-compat"\n') f.write('ISAR_ENABLE_COMPAT_ARCH:arm64 = "1"\n') + f.write('IMAGE_INSTALL:append:arm64 = " hello-isar-compat"\n') f.write('IMAGE_INSTALL += "kselftest"\n') if cross: f.write('ISAR_CROSS_COMPILE = "1"\n') -- 2.30.2