On 9/6/2025 6:24 PM, Rob Clark wrote:
On Sat, May 24, 2025 at 10:15 AM Dmitry Baryshkov
<[email protected]> wrote:
On Sat, May 24, 2025 at 09:25:37PM +0530, Viswanath Kraleti wrote:
From: Ryan Eatmon <[email protected]>
The files generated by gen_header.py capture the source path to the
input files and the date. While that can be informative, it varies
based on where and when the kernel was built as the full path is
captured.
Since all of the files that this tool is run on is under the drivers
directory, this modifies the application to strip all of the path before
drivers. Additionally it prints <stripped> instead of the date.
Signed-off-by: Ryan Eatmon <[email protected]>
Signed-off-by: Bruce Ashfield <[email protected]>
Signed-off-by: Viswanath Kraleti <[email protected]>
---
The files generated by gen_header.py include the source path to the
input files and the build date. While this information can be useful,
it inadvertently exposes build system configuration details in the
binaries. This hinders binary reproducibility, as the output will
vary if the build environment changes.
This change was originally submitted to the linux-yocto-dev kernel [1]
to address binary reproducibility QA errors. However, the fix is generic
enough to be applicable to the mainline kernel and would benefit other
distributions as well. So proposing it here for broader inclusion.
[1]
https://git.yoctoproject.org/linux-yocto-dev/commit/?id=f36faf0f9f8d8f5b4c43a68e5c6bd83a62253140
---
Changes in v2:
- Corrected author id
- Link to v1:
https://lore.kernel.org/r/[email protected]
---
drivers/gpu/drm/msm/registers/gen_header.py | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
Acked-by: Dmitry Baryshkov <[email protected]>
Rob, WDYT?
I'm revisiting this one, in the context of trying to re-sync
gen_header.py with mesa.. but it is only changing the contents of
comments, so it's not quite clear to me how this ends up mattering for
binary reproducibility.
The reason it matters is that for Yocto, the generated header file is
identified as a file that needs to be installed into the sysroot. All
files going into the sysroot are checked to make sure they do not
contain dates and/or paths to the build directory contained within.
Since this is a generated header file that is included in the sysroot we
needed to strip out the path and date.
The idea for the reproducible builds are that the same files on a
different a machine at a different time should produce 100% identical
files. Including paths and dates violates that tenet.
Hope that helps explain why we needed this. So long as the
gen_header.py is being called to generate header files then we need to
maintain the reproducible aspect.
That said, since the generated files are no longer checked in to mesa
or the kernel, we could probably just drop all of this if it mattered.
BR,
-R
--
Ryan Eatmon [email protected]
-----------------------------------------
Texas Instruments, Inc. - LCPD - MGTS