From: Mikko Rapeli <mikko.rapeli@linaro.org>
To: yocto@lists.yoctoproject.org, aleksandar.nikolic010@gmail.com
Cc: Dmitry Baryshkov <dbaryshkov@gmail.com>
Subject: Re: [yocto] Yocto Binary Distro
Date: Tue, 8 Oct 2024 11:53:03 +0300 [thread overview]
Message-ID: <ZwTy7wiOzHJcVNjn@nuoska> (raw)
In-Reply-To: <11278.1728376247903375011@lists.yoctoproject.org>
Hi,
On Tue, Oct 08, 2024 at 01:30:47AM -0700, Aleksandar Nikolic via lists.yoctoproject.org wrote:
> On Tue, Oct 8, 2024 at 01:25 AM, Dmitry Baryshkov wrote:
>
> >
> > Consider using shared SSTATE, it saves you from all the rebuilds,
> > while keeping Yocto internals intact and sane.
>
> We are using sstate cache, but if I am not mistaken it can happen that even though a package is in the sstate cache, there's a cache miss and the package gets rebuilt - and this is exactly what some coworkers would like to avoid, cause it means a different binary is on the target than the one previously built and tested. That's why I posted another question here (maybe 2 weeks ago) if there's a way to force Yocto to only use sstate-cache and fail if a package needs to be rebuilt or to print a list of packages which were built from source. But there's no an "easy" way to do it.
Why is one compilation of the released recipe different from another? Who
maintains the toolchains and dependencies?
Yocto is for building from sources. It doesn't really have ABI checks and layers
which would easily enable to freeze an ABI and integrate binaries on top
of that. Every rebuild can change the ABIs in significant ways.
The approach in bitbake is to rebuild full dependency tree if something changes.
Compilers, glibc etc get updated all the time and it's important to know if something
fails to compile, also to make sure that needed features are enabled, correct
compile flags applied etc.
It is possible to integrate binaries into yocto builds but then it must
be understood that there are no ABI compatibility checks. The binary
may start failing at any time. The recompilations may be costly but
that's how yocto is. sstate cache helps but doesn't take away the
full tree rebuilds when something e.g. native recipe changes.
IMO it is tricky to fight against this and it's better to accept it.
If developers want stable ABIs and integrate binaries then other distros
could be better but they come with different problems. Debian is hard to
optimize for the full stack, e.g. distro and machine features. OBS
may help building only subset of packages from scratch, but even there
ABI checks may not exist and user need to rely on test automation to detect
breakage.
Yocto can build an SDK which can be used to generate 'golden' binaries but
again compatibility of different SDK builds needs to be checked
to know when binaries may start breaking. At various points ABIs change so
much that all binarees need to be recompiled. Think of a security update
which brings a new openssl version with incompatible ABI.
Cheers,
-Mikko
next prev parent reply other threads:[~2024-10-08 8:53 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-07 5:03 Yocto Binary Distro Aleksandar Nikolic
2024-10-07 11:31 ` [yocto] " Alexander Kanavin
2024-10-07 14:43 ` Aleksandar Nikolic
2024-10-07 19:07 ` Dmitry Baryshkov
2024-10-07 19:27 ` Alexander Kanavin
2024-10-07 19:29 ` Dmitry Baryshkov
2024-10-07 20:34 ` Aleksandar Nikolic
2024-10-07 23:25 ` Dmitry Baryshkov
2024-10-08 8:30 ` Aleksandar Nikolic
2024-10-08 8:53 ` Mikko Rapeli [this message]
2024-10-08 12:09 ` Aleksandar Nikolic
2024-10-08 12:16 ` Mikko Rapeli
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=ZwTy7wiOzHJcVNjn@nuoska \
--to=mikko.rapeli@linaro.org \
--cc=aleksandar.nikolic010@gmail.com \
--cc=dbaryshkov@gmail.com \
--cc=yocto@lists.yoctoproject.org \
/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