On Tue, Jul 2, 2024 at 2:32 AM Alan Maguire <alan.maguire@xxxxxxxxxx> wrote: > > Reproducible builds [1] require that the same source code with > the same set of tools can build identical objects each time, > but pahole in parallel mode was non-deterministic in > BTF generation prior to > > dba7b5e ("pahole: Encode BTF serially in a reproducible build") > > This was a problem since said BTF is baked into kernels and modules in > .BTF sections, so parallel pahole was causing non-reproducible binary > generation. Now with the above commit we have support for parallel > reproducible BTF generation in pahole. > > KBUILD_BUILD_TIMESTAMP is set for reproducible builds, so if it > is set, add reproducible_build to --btf_features. > > [1] Documentation/kbuild/reproducible-builds.rst > > Signed-off-by: Alan Maguire <alan.maguire@xxxxxxxxxx> Does not make sense. KBUILD_BUILD_TIMESTAMP is not a switch for "please enable the reproducible build". KBUILD_BUILD_TIMESTAMP requires the build code to use the given time in the output where timestamps are used. Your patch does not use the timestamp at all. If --btf_features=reproducible_build has no downside, please add it whenever supported. > --- > scripts/Makefile.btf | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/scripts/Makefile.btf b/scripts/Makefile.btf > index b75f09f3f424..40bb72662967 100644 > --- a/scripts/Makefile.btf > +++ b/scripts/Makefile.btf > @@ -21,6 +21,10 @@ else > # Switch to using --btf_features for v1.26 and later. > pahole-flags-$(call test-ge, $(pahole-ver), 126) = -j --btf_features=encode_force,var,float,enum64,decl_tag,type_tag,optimized_func,consistent_func,decl_tag_kfuncs > > +ifneq ($(KBUILD_BUILD_TIMESTAMP),) > +pahole-flags-$(call test-ge, $(pahole-ver), 126) += --btf_features=reproducible_build > +endif > + > ifneq ($(KBUILD_EXTMOD),) > module-pahole-flags-$(call test-ge, $(pahole-ver), 126) += --btf_features=distilled_base > endif > -- > 2.31.1 > -- Best Regards Masahiro Yamada