From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] Build reproducibility
Date: Tue, 3 Sep 2013 09:16:12 +0200 [thread overview]
Message-ID: <20130903091612.3216fb83@skate> (raw)
In-Reply-To: <87r4d6775s.fsf@dell.be.48ers.dk>
Dear Peter Korsgaard,
On Tue, 03 Sep 2013 08:26:07 +0200, Peter Korsgaard wrote:
> Arnout> Note that doing more randomized build order in the autobuilder also
> Arnout> will not capture the latter scenario. You would have to compare the
> Arnout> build result - but binary differences are likely because of changing
> Arnout> timestamps or changing optimizations depending on memory randomness.
>
> Exactly. I don't have any good ideas about how to detect this (besides
> building all packages in clean staging dirs, E.G. only populated with
> its explicit dependencies like afaik OE lite can do, but that would
> require quite some work), anyone?
Doing a per-package sysroot that is generated for each package before
it gets built, with only the explicitly listed dependencies, is indeed
the only way to ensure that a package is not seeing/using something
that isn't declared as a dependency.
This would certainly be nice to have (as it also helps top-level
parallel build, as was discussed with Fabio Porcedda some time ago),
but:
1) I'm worried about the additional complexity inside Buildroot.
2) I'm worried about the additional build time required to generate a
per-package sysroot for each package. When building large stacks
like X.org that has many small packages, but each have a lot of
dependencies, the cost of creating a sysroot before building each
package could be huge.
3) We still need to provide the user a global sysroot with all
libraries installed, so that he can use the toolchain generated by
Buildroot to build his own libraries/applications. This would mean
we would need to have two sysroots: the global sysroot, that gets
incrementally populated with what all packages are installing, but
that isn't used for building packages inside Buildroot, and a
separate temporary sysroot, used when building the current package.
Since the compiler would default to the 'global sysroot', we would
have to pass --sysroot $(TMPSYSROOT) all the time, or have a
separate wrapper, or something. Not impossible, but see (1).
Best regards,
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
next prev parent reply other threads:[~2013-09-03 7:16 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-30 8:31 [Buildroot] Build reproducibility Jérôme Pouiller
2013-08-30 8:31 ` [Buildroot] [PATCH] Fix build reproducibility in Make 3.82 Jérôme Pouiller
2013-09-03 6:13 ` Arnout Vandecappelle
2013-09-03 8:45 ` [Buildroot] [PATCH v2] " Jérôme Pouiller
2013-09-03 9:31 ` Arnout Vandecappelle
2013-09-07 6:06 ` Peter Korsgaard
2013-08-30 11:59 ` [Buildroot] Build reproducibility Thomas De Schampheleire
2013-08-30 12:44 ` Jérôme Pouiller
2013-08-30 12:52 ` Thomas Petazzoni
2013-09-02 8:44 ` Thomas De Schampheleire
2013-09-02 8:53 ` Thomas Petazzoni
2013-09-02 13:18 ` Thomas De Schampheleire
2013-09-03 17:13 ` Thomas Petazzoni
2013-09-05 19:56 ` Thomas De Schampheleire
2013-09-05 20:49 ` Jérôme Pouiller
2013-09-02 16:11 ` Arnout Vandecappelle
2013-09-03 6:26 ` Peter Korsgaard
2013-09-03 7:16 ` Thomas Petazzoni [this message]
2013-09-03 7:47 ` Peter Korsgaard
2013-09-03 16:48 ` Thomas Petazzoni
2013-09-03 8:15 ` Jérôme Pouiller
2013-09-03 16:54 ` Thomas Petazzoni
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=20130903091612.3216fb83@skate \
--to=thomas.petazzoni@free-electrons.com \
--cc=buildroot@busybox.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.