On Mon, Sep 8, 2025 at 6:39 AM Ryan Eatmon <[email protected]> wrote: > > > > 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. >
My plan is (was?) to just replace the entire comment header with simply: /* Autogenerated file, DO NOT EDIT manually! */ That said, I'm not entirely sure why these files should get installed into the sysroot? I'm not super hands-on familiar with Yocto, so maybe there is a good reason.. but if there is, maybe the plan to remove the license/etc from the comment header isn't such a good idea after all? BR, -R > > > 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 > >
