On 2022-08-28, Vagrant Cascadian wrote: > On 2022-08-28, Rasmus Villemoes wrote: >> On 26/08/2022 22.59, Tom Rini wrote: >>> On Thu, Aug 18, 2022 at 10:31:34AM -0700, Vagrant Cascadian wrote: >>>> From: Vagrant Cascadian <vagr...@reproducible-builds.org> >>>> >>>> The KBUILD_CFLAGS and KBUILD_AFLAGS variables are adjusted to use >>>> -ffile-prefix-map and --debug-prefix-map, respectively, to use >>>> relative paths for occurrences of __FILE__ and debug paths. >>>> >>>> This enables reproducible builds regardless of the absolute path to >>>> the build directory: >>>> >>>> https://reproducible-builds.org/docs/build-path/ >>>> >>>> Signed-off-by: Vagrant Cascadian <vagr...@reproducible-builds.org> >>>> Acked-by: Rasmus Villemoes <rasmus.villem...@prevas.dk> >>> >>> This needs some sort of clang check and then perhaps different flag >>> used? How does the linux kernel handle this? >> >> Well, interestingly it seems that the kernel doesn't do anything like >> this for debug info, they only apply the -fmacro-prefix-map. Which one >> should probably raise with them at some point. >> >> It seems we're not actually calling gas directly, but always invokes >> $(CC) whatever that may be to compile assembler files. So I think the >> right fix is to simply pass the same -ffile-prefix-map in both >> KBUILD_CFLAGS as in KBUILD_AFLAGS - and if there's some variable that >> ends up being included in both automatically, then just adding it there >> should do the trick. > > I tried just adding -ffile-prefix-map and that helped, but was not > sufficient to solve the reproducibility issues. It also needs the > --debug-prefix-map to make it the assembly code build reproducibly. > > Though I guess I didn't try adding -ffile-prefix-map to KBUILD_AFLAGS, > now that I think about it... will test that too, thanks!
Nope, that built, but not reproducibly... I was able to guard it with "as-option": +KBUILD_AFLAGS += $(call as-option,--debug-prefix-map=$(srctree)/=) And it builds reproducibly for me. That should be sufficient to fix build failures with clang... or is there a more appropriate guard to use? I am not familiar with clang and it's relevent tools to know if there is a relevent comprable option to --debug-prefix-map. live well, vagrant
signature.asc
Description: PGP signature