public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: "Schmidt, Adriaan" <adriaan.schmidt@siemens.com>
To: "Kiszka, Jan" <jan.kiszka@siemens.com>,
	"isar-users@googlegroups.com" <isar-users@googlegroups.com>
Subject: RE: [PATCH 3/3] remove obsolete compat-arch override
Date: Mon, 6 Feb 2023 13:34:46 +0000	[thread overview]
Message-ID: <AS4PR10MB53186E063C75CC2428C3C1CAEDDA9@AS4PR10MB5318.EURPRD10.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <ce020d93-4591-c4d9-b630-71891dc7bd9e@siemens.com>

Kiszka, Jan (T CED) <jan.kiszka@siemens.com>, 6. Februar 2023 14:01:
> On 06.02.23 13:20, Adriaan Schmidt wrote:
> > The compat-arch override is no longer needed, as PACKAGE_ARCH is controlled
> > by DEPENDing on <package>-compat.
> >
> > Also change the compat test: adding the compat package now happens via
> > IMAGE_INSTALL in the config.
> >
> > Signed-off-by: Adriaan Schmidt <adriaan.schmidt@siemens.com>
> > ---
> >  meta-isar/recipes-app/hello-isar/hello-isar.bb     |  3 ---
> >  meta-isar/recipes-app/libhello/libhello.bb         |  3 ---
> >  meta/conf/bitbake.conf                             |  3 +--
> >  .../recipes-core/isar-bootstrap/isar-bootstrap.inc |  2 ++
> >  .../sbuild-chroot/sbuild-chroot.inc                | 14 ++++++++------
> >  testsuite/cibuilder.py                             |  2 ++
> >  6 files changed, 13 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/conf/bitbake.conf b/meta/conf/bitbake.conf
> > index f38bb447..1f010f4b 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_CODENA
> ME}: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 9d1b80f7..0b68e87d 100755
> > --- a/testsuite/cibuilder.py
> > +++ b/testsuite/cibuilder.py
> > @@ -92,7 +92,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')
> 
> This does not oull hello-isar-compat when doing a local build. We likely
> need something in meta-isar/conf/local.conf.sample now.

Ah, it works fine with ISAR_ENABLE_COMPAT_ARCH = "1", but not with
ISAR_ENABLE_COMPAT_ARCH:amd64 = "1". Will have a look.

Currently, that switch is still needed, otherwise the bootstrap
and (s)buildchroot don't get "dpkg --add-architecture <compat-arch>".
I added a check, to report and fail as early as possible if that is missing.

Alternatively we could try to remove ISAR_ENABLE_COMPAT_ARCH completely
and make everything implicit, e.g.:
- have -compat targets depend on a (new) buildchroot-compat
  (or always have compat support in the buildchroot)
- auto-detect (at rootfs creation, when we know which packages we want to
  install) if we need to add the compat arch to the image.
But that would probably mean some bigger changes.

Adriaan

> Jan
> 
> --
> Siemens AG, Technology
> Competence Center Embedded Linux


  reply	other threads:[~2023-02-06 13:34 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-06 12:20 [PATCH 0/3] multiarch support Adriaan Schmidt
2023-02-06 12:20 ` [PATCH 1/3] bitbake.conf: use PACKAGE_ARCH in overrides Adriaan Schmidt
2023-02-06 12:20 ` [PATCH 2/3] add multiarch support Adriaan Schmidt
2023-02-28  7:58   ` Cedric Hombourger
2023-02-28  8:24     ` Schmidt, Adriaan
2023-02-06 12:20 ` [PATCH 3/3] remove obsolete compat-arch override Adriaan Schmidt
2023-02-06 13:00   ` Jan Kiszka
2023-02-06 13:34     ` Schmidt, Adriaan [this message]
2023-02-06 14:22       ` Schmidt, Adriaan
2023-02-06 13:01 ` [PATCH 0/3] multiarch support Jan Kiszka
2023-02-06 13:36   ` Schmidt, Adriaan
2023-02-07 13:50     ` Jan Kiszka
2023-02-07 14:44       ` Schmidt, Adriaan
2023-02-20  8:54         ` Schmidt, Adriaan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AS4PR10MB53186E063C75CC2428C3C1CAEDDA9@AS4PR10MB5318.EURPRD10.PROD.OUTLOOK.COM \
    --to=adriaan.schmidt@siemens.com \
    --cc=isar-users@googlegroups.com \
    --cc=jan.kiszka@siemens.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox