Message ID | 23e2afda-630a-f6fc-e211-a464b29496f4@nokia.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mips: vdso: Allow passing build path options | expand |
Hello Matija, Thomas, On 04/04/2022 10:36, Matija Glavinic Pecotic wrote: > vdso image is not reproducible in different build directories as build > path defines vdso image contents via .notes, build ID. Build ID is > hashed across all sections (prior stripping), debug sections included. > With debug sections containing build paths, hash is impacted. Finally > vmlinux is not reproducible as it will differ in vdso_data. > > For users wanting reproducible builds, irrespective of build path, it > is unwanted behavior. Issue is sorted out by passing related options > via KAFLAGS, KCFLAGS, however due to mips' picking out specific/subset > options, these are not getting passed through. > > Allow related option to be taken if user specified them. > > Signed-off-by: Matija Glavinic Pecotic <matija.glavinic-pecotic.ext@nokia.com> Reviewed-by: Alexander Sverdlin <alexander.sverdlin@nokia.com> > --- > arch/mips/vdso/Makefile | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile > index f72658b3a53f..b8296ef2bfcf 100644 > --- a/arch/mips/vdso/Makefile > +++ b/arch/mips/vdso/Makefile > @@ -35,8 +35,12 @@ cflags-vdso := $(ccflags-vdso) \ > -O3 -g -fPIC -fno-strict-aliasing -fno-common -fno-builtin -G 0 \ > -mrelax-pic-calls $(call cc-option, -mexplicit-relocs) \ > -fno-stack-protector -fno-jump-tables -DDISABLE_BRANCH_PROFILING \ > - $(call cc-option, -fno-asynchronous-unwind-tables) > + $(call cc-option, -fno-asynchronous-unwind-tables) \ > + $(filter -ffile-prefix-map%,$(KBUILD_CFLAGS)) \ > + $(filter -fmacro-prefix-map%,$(KBUILD_CFLAGS)) \ > + $(filter -fdebug-prefix-map%,$(KBUILD_CFLAGS)) > aflags-vdso := $(ccflags-vdso) \ > + $(filter --debug-prefix-map%,$(KBUILD_AFLAGS)) \ > -D__ASSEMBLY__ -Wa,-gdwarf-2 > > ifneq ($(c-gettimeofday-y),)
diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile index f72658b3a53f..b8296ef2bfcf 100644 --- a/arch/mips/vdso/Makefile +++ b/arch/mips/vdso/Makefile @@ -35,8 +35,12 @@ cflags-vdso := $(ccflags-vdso) \ -O3 -g -fPIC -fno-strict-aliasing -fno-common -fno-builtin -G 0 \ -mrelax-pic-calls $(call cc-option, -mexplicit-relocs) \ -fno-stack-protector -fno-jump-tables -DDISABLE_BRANCH_PROFILING \ - $(call cc-option, -fno-asynchronous-unwind-tables) + $(call cc-option, -fno-asynchronous-unwind-tables) \ + $(filter -ffile-prefix-map%,$(KBUILD_CFLAGS)) \ + $(filter -fmacro-prefix-map%,$(KBUILD_CFLAGS)) \ + $(filter -fdebug-prefix-map%,$(KBUILD_CFLAGS)) aflags-vdso := $(ccflags-vdso) \ + $(filter --debug-prefix-map%,$(KBUILD_AFLAGS)) \ -D__ASSEMBLY__ -Wa,-gdwarf-2 ifneq ($(c-gettimeofday-y),)
vdso image is not reproducible in different build directories as build path defines vdso image contents via .notes, build ID. Build ID is hashed across all sections (prior stripping), debug sections included. With debug sections containing build paths, hash is impacted. Finally vmlinux is not reproducible as it will differ in vdso_data. For users wanting reproducible builds, irrespective of build path, it is unwanted behavior. Issue is sorted out by passing related options via KAFLAGS, KCFLAGS, however due to mips' picking out specific/subset options, these are not getting passed through. Allow related option to be taken if user specified them. Signed-off-by: Matija Glavinic Pecotic <matija.glavinic-pecotic.ext@nokia.com> --- arch/mips/vdso/Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)