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 14:22:18 +0000	[thread overview]
Message-ID: <AS4PR10MB5318BED04B1B1A7556E4FF31EDDA9@AS4PR10MB5318.EURPRD10.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <AS4PR10MB53186E063C75CC2428C3C1CAEDDA9@AS4PR10MB5318.EURPRD10.PROD.OUTLOOK.COM>

Schmidt, Adriaan, Montag, 6. Februar 2023 14:35:
> 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.

Found it! Next iteration will fix this.
Until then, for manual testing, please set ISAR_ENABLE_COMPAT_ARCH without
any overrides.

Adriaan

> 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
> 
> --
> You received this message because you are subscribed to the Google Groups
> "isar-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to isar-users+unsubscribe@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/isar-
> users/AS4PR10MB53186E063C75CC2428C3C1CAEDDA9%40AS4PR10MB5318.EURPRD10.PROD.OU
> TLOOK.COM.

  reply	other threads:[~2023-02-06 14:22 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
2023-02-06 14:22       ` Schmidt, Adriaan [this message]
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=AS4PR10MB5318BED04B1B1A7556E4FF31EDDA9@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