Re: sstate causing stripped kernel vs symbols mismatch


Sean McKay
 

The kernel doesn’t have reproducible builds by default because of a handful of variables (including timestamps). If you rebuild, you get a different binary every time.
Those can be changed and overridden so that you get consistent binary output (see here: https://www.kernel.org/doc/html/latest/kbuild/reproducible-builds.html) but that hasn’t been done on the linux-yocto recipe yet.

I assume that it’s planned because there are efforts going in to making things 100% reproducible for poky, but I don’t know what the status of everything is (although I know that the kernel at least isn’t reproducible as of 22.0.2)

 

Since this can theoretically happen to any package that doesn’t have a reproducible build process, it seemed worth asking the question globally too.

 

-Sean

 

 

From: yocto@... <yocto@...> On Behalf Of Alexander Kanavin
Sent: Tuesday, April 7, 2020 12:11 PM
To: McKay, Sean <sean.mckay@...>
Cc: yocto@...
Subject: Re: [yocto] sstate causing stripped kernel vs symbols mismatch

 

On Tue, 7 Apr 2020 at 21:03, Sean McKay <sean.mckay@...> wrote:

  If you’re interested, this is quite easy to reproduce – these are my repro steps

  • Check out a clean copy of zeus (22.0.2)
  • Add kernel-image to core-image-minimal in whatever fashion you choose (I just dumped it in the RDEPENDS for packagegroup-core-boot for testing)
  • bitbake core-image-minimal
  • bitbake -c clean core-image-minimal linux-yocto (or just wipe your whole build dir, since everything should come from sstate now)
  • Delete the sstate object(s) for linux-yocto’s deploy task.
  • bitbake core-image-minimal
  • Compare the BuildID hashes for the kernel in the two locations using file (you’ll need to use the kernel’s extract-vmlinux script to get it out of the bzImage)
    • file tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/rootfs/boot/vmlinux-5.2.28-yocto-standard
    • ./tmp/work-shared/qemux86-64/kernel-source/scripts/extract-vmlinux tmp/deploy/images/qemux86-64/bzImage > vmlinux-deploy && file vmlinux-deploy

The kernel is still re-built from the same source, so why is this causing issues?

 

Alex

Join yocto@lists.yoctoproject.org to automatically receive all group messages.