public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: Uladzimir Bely <ubely@ilbers.de>
To: "isar-users@googlegroups.com" <isar-users@googlegroups.com>,
	"Moessbauer, Felix" <felix.moessbauer@siemens.com>
Subject: Re: [PATCH] install crossbuild-essential into base schroot
Date: Thu, 04 Aug 2022 11:09:29 +0300	[thread overview]
Message-ID: <3351240.LZWGnKmheA@home> (raw)
In-Reply-To: <AM9PR10MB486940FDA5D734849B056B4B899F9@AM9PR10MB4869.EURPRD10.PROD.OUTLOOK.COM>

[-- Attachment #1: Type: text/plain, Size: 3601 bytes --]

In the email from Thursday, 4 August 2022 10:56:40 +03 user Moessbauer, Felix wrote:
> > -----Original Message-----
> > From: Anton Mikanovich <amikan@ilbers.de>
> > Sent: Thursday, August 4, 2022 9:36 AM
> > To: Moessbauer, Felix (T CED SES-DE) <felix.moessbauer@siemens.com>;
> > isar-users@googlegroups.com
> > Cc: Kiszka, Jan (T CED) <jan.kiszka@siemens.com>; Uladzimir Bely
> > <ubely@ilbers.de>
> > Subject: Re: [PATCH] install crossbuild-essential into base schroot
> > 
> > 03.08.2022 19:44, Felix Moessbauer wrote:
> > 
> > > This patch always installs the crossbuild-essential-<distro> package
> > > into the lower dir of the host sbuild schroot.
> > >
> > >
> > >
> > > This avoids having to install this package in the upper-dir when
> > > cross-compiling, and is identical to build-essential when natively
> > > compiling.
> > > By that, the parallel cross-build of packages is significantly faster.
> > >
> > >
> > >
> > > Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
> > > ---
> > > 
> > >   meta/recipes-devtools/sbuild-chroot/sbuild-chroot-host.bb | 5 +++++
> > >   1 file changed, 5 insertions(+)
> > >
> > >
> > >
> > > diff --git a/meta/recipes-devtools/sbuild-chroot/sbuild-chroot-host.bb
> > > b/meta/recipes-devtools/sbuild-chroot/sbuild-chroot-host.bb
> > > index aa82846b..f7c7d11b 100644
> > > --- a/meta/recipes-devtools/sbuild-chroot/sbuild-chroot-host.bb
> > > +++ b/meta/recipes-devtools/sbuild-chroot/sbuild-chroot-host.bb
> > > @@ -9,5 +9,10 @@ SBUILD_VARIANT = "host"
> > >
> > >
> > >
> > >   require sbuild-chroot.inc
> > >
> > >
> > >
> > > +# always add the crossbuild-essentials package which is # a noop for
> > > +the host distro, but significantly reduces # the download + install
> > > +time when cross-compiling SBUILD_CHROOT_PREINSTALL_COMMON +=
> > > +"crossbuild-essential-${DISTRO_ARCH}"
> > > +
> > > 
> > >   ROOTFS_ARCH = "${HOST_ARCH}"
> > >   ROOTFS_DISTRO = "${HOST_DISTRO}"
> > 
> > 
> > This will probably not work on riscv64 and any other targets with
> > self-build
 crossbuild-essential.
> 
> 
> The CI did not report any issues with this patch, but maybe an riscv64 test
> is missing...
 Either we exclude these community-ports of Debian, or we
> simply just apply the patches for the architectures we support and we know
> it works (like armhf, arm64). 
> Even if this is just a performance thing, in layers with dozens of packages
> the overhead of just installing the compilers is huge.
 It also bloats the
> upper-dir of the schroot leading to significant disk consumption. 
> Jan recently reported that the build time raised a lot when switching an
> arm64 layer to from ISAR v0.9 to ISAR-next (sbuild).
 Very likely most of
> that came from the crossbuild-essential packages. 
> Felix

We could also simply control it from local.conf at downstream level:

SBUILD_CHROOT_PREINSTALL += "${@ 'crossbuild-essential-${DISTRO_ARCH}' if 
d.getVar('SBUILD_VARIANT') == 'host' else ''}"

This still just needs a small change in SBUILD_CHROOT_PREINSTALL definition in sbuild-
chroot.inc (replace '?=' with '+=')

builder@9f6a3f775537:/build/bc$ bitbake -e mc:qemuarm-bullseye:sbuild-chroot-target | grep 
"SBUILD_CHROOT_PREINSTALL=" 
SBUILD_CHROOT_PREINSTALL="fakeroot build-essential debhelper 
ccache devscripts equivs" 
builder@9f6a3f775537:/build/bc$ bitbake -e mc:qemuarm-bullseye:sbuild-chroot-host | grep 
"SBUILD_CHROOT_PREINSTALL="       
SBUILD_CHROOT_PREINSTALL="crossbuild-essential-armhf fakeroot build-
essential debhelper ccache devscripts equivs  "
This approach looks more flexible for me.

-- 
Uladzimir Bely


[-- Attachment #2: Type: text/html, Size: 10951 bytes --]

  reply	other threads:[~2022-08-04  8:09 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-03 16:44 Felix Moessbauer
2022-08-04  6:07 ` Jan Kiszka
2022-08-04  6:22   ` Uladzimir Bely
2022-08-04  7:17     ` Moessbauer, Felix
2022-08-04  7:40     ` Jan Kiszka
2022-08-04  7:35 ` Anton Mikanovich
2022-08-04  7:56   ` Moessbauer, Felix
2022-08-04  8:09     ` Uladzimir Bely [this message]
2022-08-10 14:45     ` Anton Mikanovich

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=3351240.LZWGnKmheA@home \
    --to=ubely@ilbers.de \
    --cc=felix.moessbauer@siemens.com \
    --cc=isar-users@googlegroups.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