Removing build metadata, for reproducible kernel builds

John Baldwin jhb at
Wed Dec 2 20:04:00 UTC 2015

On Wednesday, December 02, 2015 05:36:52 PM Ed Maste wrote:
> The main issue currently preventing kernel builds from being
> reproducible[1] is the build metadata itself that's included (time,
> user, host, build path). In order to make the kernel build
> reproducible I plan to remove these by default, and add a src.conf
> knob to enable them for developers who want them in their own builds.
> The user-facing effect of this is that the kern.version sysctl no
> longer conveys this information, and uname -a changes from something
> like:
> FreeBSD 11.0-CURRENT FreeBSD 11.0-CURRENT #0
> r288681: Mon Oct  5 01:40:11 UTC 2015
> peter at  amd64
> to something like:
> FreeBSD feynman 10.2-STABLE FreeBSD 10.2-STABLE #44
> r288174+7644546(stable-10) amd64
> The current version of the change is available for review at
> [1] See for more information on the
> reproducible builds project.

As I noted in the review, this will break kgdb -n (and possibly crashinfo,
less certain about that).  Keeping the path (which should not vary if you
build out of the same tree) will be sufficient to let kgdb -n still work
(though it may need some changes to recognize both formats).

Keeping the path also means that 'uname -a' still tells you which kernel
config you are running (I assume you aren't changing 'uname -i', but
'uname -a' doesn't include 'uname -i').

John Baldwin

More information about the freebsd-arch mailing list