[rb-general] Reproducible build of a GCC cross-compiler?

Sebastian Huber sebastian.huber at embedded-brains.de
Fri Jun 7 12:29:45 UTC 2019

On 07/06/2019 13:54, Richard Purdie wrote:
> On Fri, 2019-06-07 at 13:41 +0200, Sebastian Huber wrote:
>> Hello,
>> has someone tried to do a reproducible build of a GCC cross-compiler?
>> I
>> am not interested in a native GCC. I guess it needs some tweaks in
>> the
>> build system of GCC, e.g.
>> * use of -frandom-seed=???
>> * export SOURCE_DATE_EPOCH=???
>> * -ffile-prefix-map=???=???
>> * etc.
>> It seems there is no magic configuration option in
>> https://gcc.gnu.org/install/configure.html
>> to enable a reproducible build.
> The Yocto Project builds and uses gcc cross compilers and we believe
> our builds to be reproducible when configured to be.
> We do use SOURCE_DATE_EPOCH and -ffile-prefix-map=.

Interesting, a "-ffile-prefix-map=." is not documented. What I find is this:



     When compiling files residing in directory old, record debugging 
information describing them as if the files resided in directory new 
instead. This can be used to replace a build-time path with an 
install-time path in the debug info. It can also be used to change an 
absolute path to a relative path by using . for new. This can give more 
reproducible builds, which are location independent, but may require an 
extra command to tell GDB where to find the source files. See also 

It only says "." for new. What effect has this setting?

How did you propagate the settings to the newly built cross compiler 
invoked to build the target libraries?

It would be nice if I could build the cross compiler and the target 
libraries at an arbitrary location and then install the binaries and 
sources at some prefix. If I debug an application it will find the 
Newlib sources in the prefix automatically.

Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

More information about the rb-general mailing list