diff mbox series

mips: vdso: Allow passing build path options

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

Commit Message

Matija Glavinic Pecotic April 4, 2022, 8:36 a.m. UTC
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(-)

Comments

Alexander Sverdlin June 8, 2022, 9:11 a.m. UTC | #1
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 mbox series

Patch

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),)