<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>While building Yocto images and verifying binary reproducibility,
I noticed that on several occasions binaries for kernel <br>
</p>
<p>modules differed in embedded "srcversion", although the modules
were built using the very same sources.</p>
<p>This pretty much negates the whole premise/purpose of the
"srcversion" field, as the checksum should be the same <br>
</p>
<p>if the source files are the same, breaking binary reproducibility
as well.<br>
</p>
<p>( <a class="moz-txt-link-freetext" href="https://bugzilla.yoctoproject.org/show_bug.cgi?id=12544">https://bugzilla.yoctoproject.org/show_bug.cgi?id=12544</a> )</p>
<p>At first I suspected some kind of race condition, but it turns
out the problem was/is in Linux kbuild system, where during</p>
<p> "srcversion" checksum calculation some source files were simply
(silently!) ignored/excluded from srcversion calculation.</p>
<p>This happened when during parsing certain text lines exceeded
4096 bytes. Yocto builds can have complicated build paths</p>
<p> and complex CCFLAGS, so on occasions 4096 bytes were exceeded,
no warnings issued and incorrect "srcversion" were calculated. </p>
<p>Long story short, I sent a patch to the maintainers, (no feedback
so far):</p>
<pre class="bz_comment_text" id="comment_text_2"><a href="https://patchwork.kernel.org/patch/10318141/">https://patchwork.kernel.org/patch/10318141/</a>
Juro
</pre>
</body>
</html>