[Buildroot] [PATCH 00/15] Reproducible builds

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Thu Nov 17 14:08:55 UTC 2016


On Thu, 17 Nov 2016 14:17:41 +0100, Jérôme Pouiller wrote:

> >>   - since gcc versions supporting SOURCE_DATE_EPOCH are not widely 
> >> available,
> >>     external toolchains probably won't work.  
> > 
> > Instead of patching gcc, can we solve the problem in the toolchain
> > wrapper? I.e, maybe the toolchain wrapper can set __DATE__ and __TIME__
> > by passing -D__DATE__=... -D__TIME__=... to gcc ?  
> Yes, I can switch to this solution.

I think it's a reasonable use of the wrapper, and makes the thing work
fine for external toolchain as well, which is nice.

Another (unrelated) question: how can we test this stuff? You're
providing the initial steps for it, but at some point, we will want to
validate which packages behave properly and which packages don't behave
properly. Have you already thought of automated testing we can do (in
the autobuilders perhaps?) to exercise this "reproducible builds"
functionality? Should we from time to time do a given builds twice,
each time in a different environment (different date, different time,
different user, different path, different timezone, different locale,
etc.) ?

To what extent do we try to be reproducible? Do we try to have
something that produces the same result when executed multiple times,
but on the same machine, in the same environment (i.e only date/time
changes) ? Or do we try to go the point where a given Buildroot .config
gives a byte identical output regardless of the host machine on which
you do the build? It would be great to know what our definition of
"reproducible is", and document it in the help text of the


Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering

More information about the buildroot mailing list