From 6d23a9c5707de7243c0b3423724c0e4f3e1ee40d Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 14 May 2025 19:59:31 -0700 Subject: [PATCH] Makefile: Add flag for reprodubility compiler flags Provides mechanism to remove absolute paths from binaries using -ffile-prefix-map It will help distros (e.g. yocto based ones ) which want to ship the .elf files but need to scrub absolute paths in objects Reviewed-by: Anup Patel Signed-off-by: Khem Raj Link: https://lore.kernel.org/r/20250515025931.3383142-1-raj.khem@gmail.com Signed-off-by: Anup Patel --- Makefile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Makefile b/Makefile index adb4862c..398eabe8 100644 --- a/Makefile +++ b/Makefile @@ -180,6 +180,11 @@ else USE_LD_FLAG = -fuse-ld=bfd endif +REPRODUCIBLE ?= n +ifeq ($(REPRODUCIBLE),y) +REPRODUCIBLE_FLAGS += -ffile-prefix-map=$(src_dir)= +endif + # Check whether the linker supports creating PIEs OPENSBI_LD_PIE := $(shell $(CC) $(CLANG_TARGET) $(RELAX_FLAG) $(USE_LD_FLAG) -fPIE -nostdlib -Wl,-pie -x c /dev/null -o /dev/null >/dev/null 2>&1 && echo y || echo n) @@ -369,6 +374,7 @@ GENFLAGS += $(firmware-genflags-y) CFLAGS = -g -Wall -Werror -ffreestanding -nostdlib -fno-stack-protector -fno-strict-aliasing -ffunction-sections -fdata-sections CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls CFLAGS += -fno-asynchronous-unwind-tables -fno-unwind-tables +CFLAGS += $(REPRODUCIBLE_FLAGS) # Optionally supported flags ifeq ($(CC_SUPPORT_VECTOR),y) CFLAGS += -DOPENSBI_CC_SUPPORT_VECTOR @@ -394,6 +400,7 @@ CPPFLAGS += $(firmware-cppflags-y) ASFLAGS = -g -Wall -nostdlib ASFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls ASFLAGS += -fPIE +ASFLAGS += $(REPRODUCIBLE_FLAGS) # Optionally supported flags ifeq ($(CC_SUPPORT_SAVE_RESTORE),y) ASFLAGS += -mno-save-restore