diff --git a/meta-arm/recipes-security/optee/optee-os/0001-compile.mk-use-CFLAGS-from-environment.patch b/meta-arm/recipes-security/optee/optee-os/0001-compile.mk-use-CFLAGS-from-environment.patch new file mode 100644 index 00000000..6577dce3 --- /dev/null +++ b/meta-arm/recipes-security/optee/optee-os/0001-compile.mk-use-CFLAGS-from-environment.patch @@ -0,0 +1,43 @@ +From 978cc08a393b7d5d0043bf7f4d33f0e33b2b18d8 Mon Sep 17 00:00:00 2001 +From: Mikko Rapeli +Date: Thu, 1 Aug 2024 13:58:36 +0000 +Subject: [PATCH 1/3] compile.mk: use CFLAGS from environment + +Users can set CFLAGS just like AFLAGS, CC, +LD etc and expect them to be used. It's ok to amend +to them but overwriting should not be done. +Build environment like yocto expect that these +variables are used to call the compiler etc tools. +Linux distro build environments usually set +these variables. + +Helps to remove build time paths from generated binaries +since mappings to remove them can be set by the distro +build system in CFLAGS automatically for each SW component +in the build. + +Reviewed-by: Jerome Forissier +Signed-off-by: Mikko Rapeli +--- + mk/compile.mk | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +Upstream-Status: Backport + +diff --git a/mk/compile.mk b/mk/compile.mk +index b3d807ba4..0de7ea259 100644 +--- a/mk/compile.mk ++++ b/mk/compile.mk +@@ -80,7 +80,8 @@ comp-compiler-$2 := $$(CC$(sm)) + comp-flags-$2 = $$(filter-out $$(CFLAGS_REMOVE) $$(cflags-remove) \ + $$(cflags-remove-$$(comp-sm-$2)) \ + $$(cflags-remove-$2), \ +- $$(CFLAGS$$(arch-bits-$$(comp-sm-$2))) $$(CFLAGS_WARNS) \ ++ $$(CFLAGS$$(arch-bits-$$(comp-sm-$2))) $$(CFLAGS) \ ++ $$(CFLAGS_WARNS) \ + $$(comp-cflags$$(comp-sm-$2)) $$(cflags$$(comp-sm-$2)) \ + $$(cflags-lib$$(comp-lib-$2)) $$(cflags-$2)) + ifeq ($C,1) +-- +2.34.1 + diff --git a/meta-arm/recipes-security/optee/optee-os/0002-link.mk-use-CFLAGS-with-version.o.patch b/meta-arm/recipes-security/optee/optee-os/0002-link.mk-use-CFLAGS-with-version.o.patch new file mode 100644 index 00000000..08bc15d7 --- /dev/null +++ b/meta-arm/recipes-security/optee/optee-os/0002-link.mk-use-CFLAGS-with-version.o.patch @@ -0,0 +1,45 @@ +From f9207376ed58836bf748cc4cea0fcbf46624a709 Mon Sep 17 00:00:00 2001 +From: Mikko Rapeli +Date: Thu, 1 Aug 2024 14:03:11 +0000 +Subject: [PATCH 2/3] link.mk: use CFLAGS with version.o + +Should be used by all compilations. + +Reviewed-by: Jerome Forissier +Signed-off-by: Mikko Rapeli +--- + core/arch/arm/kernel/link.mk | 2 +- + core/arch/riscv/kernel/link.mk | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +Upstream-Status: Backport + +diff --git a/core/arch/arm/kernel/link.mk b/core/arch/arm/kernel/link.mk +index 49e9f4fa1..377a82b65 100644 +--- a/core/arch/arm/kernel/link.mk ++++ b/core/arch/arm/kernel/link.mk +@@ -151,7 +151,7 @@ define update-buildcount + endef + + # filter-out to workaround objdump warning +-version-o-cflags = $(filter-out -g3,$(core-platform-cflags) \ ++version-o-cflags = $(filter-out -g3,$(CFLAGS) $(core-platform-cflags) \ + $(platform-cflags) $(cflagscore)) + # SOURCE_DATE_EPOCH defined for reproducible builds + ifneq ($(SOURCE_DATE_EPOCH),) +diff --git a/core/arch/riscv/kernel/link.mk b/core/arch/riscv/kernel/link.mk +index 3d1000d15..1fff0a379 100644 +--- a/core/arch/riscv/kernel/link.mk ++++ b/core/arch/riscv/kernel/link.mk +@@ -62,7 +62,7 @@ define update-buildcount + endef + + # filter-out to workaround objdump warning +-version-o-cflags = $(filter-out -g3,$(core-platform-cflags) \ ++version-o-cflags = $(filter-out -g3,$(CFLAGS) $(core-platform-cflags) \ + $(platform-cflags) $(cflagscore)) + # SOURCE_DATE_EPOCH defined for reproducible builds + ifneq ($(SOURCE_DATE_EPOCH),) +-- +2.34.1 + diff --git a/meta-arm/recipes-security/optee/optee-os/0003-link.mk-generate-version.o-in-link-out-dir.patch b/meta-arm/recipes-security/optee/optee-os/0003-link.mk-generate-version.o-in-link-out-dir.patch new file mode 100644 index 00000000..0e559b2e --- /dev/null +++ b/meta-arm/recipes-security/optee/optee-os/0003-link.mk-generate-version.o-in-link-out-dir.patch @@ -0,0 +1,70 @@ +From 8f100f355e645376729086edbace8f01cf7aa3b4 Mon Sep 17 00:00:00 2001 +From: Mikko Rapeli +Date: Thu, 1 Aug 2024 14:04:55 +0000 +Subject: [PATCH 3/3] link.mk: generate version.o in link-out-dir + +When source code is piped to compiler, then the +current working directory is left into debug +data. If the working directory is not the output +directory, then mappings which strip absolute output +directory paths don't work. + +Removes absolute build time paths from version.o +debug info. + +Reviewed-by: Jerome Forissier +Signed-off-by: Mikko Rapeli +--- + core/arch/arm/kernel/link.mk | 5 +++-- + core/arch/riscv/kernel/link.mk | 5 +++-- + 2 files changed, 6 insertions(+), 4 deletions(-) + +Upstream-Status: Backport + +diff --git a/core/arch/arm/kernel/link.mk b/core/arch/arm/kernel/link.mk +index 377a82b65..d1d527224 100644 +--- a/core/arch/arm/kernel/link.mk ++++ b/core/arch/arm/kernel/link.mk +@@ -163,14 +163,15 @@ CORE_CC_VERSION = `$(CCcore) -v 2>&1 | grep "version " | sed 's/ *$$//'` + define gen-version-o + $(call update-buildcount,$(link-out-dir)/.buildcount) + @$(cmd-echo-silent) ' GEN $(link-out-dir)/version.o' +- $(q)echo -e "const char core_v_str[] =" \ ++ $(q)cd $(link-out-dir) && \ ++ echo -e "const char core_v_str[] =" \ + "\"$(TEE_IMPL_VERSION) \"" \ + "\"($(CORE_CC_VERSION)) \"" \ + "\"#$(BUILD_COUNT_STR) \"" \ + "\"$(DATE_STR) \"" \ + "\"$(CFG_KERN_LINKER_ARCH)\";\n" \ + | $(CCcore) $(version-o-cflags) \ +- -xc - -c -o $(link-out-dir)/version.o ++ -xc - -c -o version.o + endef + $(link-out-dir)/version.o: + $(call gen-version-o) +diff --git a/core/arch/riscv/kernel/link.mk b/core/arch/riscv/kernel/link.mk +index 1fff0a379..6511586e2 100644 +--- a/core/arch/riscv/kernel/link.mk ++++ b/core/arch/riscv/kernel/link.mk +@@ -74,14 +74,15 @@ CORE_CC_VERSION = `$(CCcore) -v 2>&1 | grep "version " | sed 's/ *$$//'` + define gen-version-o + $(call update-buildcount,$(link-out-dir)/.buildcount) + @$(cmd-echo-silent) ' GEN $(link-out-dir)/version.o' +- $(q)echo -e "const char core_v_str[] =" \ ++ $(q)cd $(link-out-dir) && \ ++ echo -e "const char core_v_str[] =" \ + "\"$(TEE_IMPL_VERSION) \"" \ + "\"($(CORE_CC_VERSION)) \"" \ + "\"#$(BUILD_COUNT_STR) \"" \ + "\"$(DATE_STR) \"" \ + "\"$(CFG_KERN_LINKER_ARCH)\";\n" \ + | $(CCcore) $(version-o-cflags) \ +- -xc - -c -o $(link-out-dir)/version.o ++ -xc - -c -o version.o + endef + + $(link-out-dir)/version.o: +-- +2.34.1 + diff --git a/meta-arm/recipes-security/optee/optee-os_4.2.0.bb b/meta-arm/recipes-security/optee/optee-os_4.2.0.bb index cee024af..33c19f2f 100644 --- a/meta-arm/recipes-security/optee/optee-os_4.2.0.bb +++ b/meta-arm/recipes-security/optee/optee-os_4.2.0.bb @@ -9,4 +9,7 @@ SRC_URI += " \ file://0003-optee-enable-clang-support.patch \ file://0001-checkconf.mk-do-not-use-full-path-to-generate-guard-.patch \ file://0001-mk-compile.mk-remove-absolute-build-time-paths.patch \ + file://0001-compile.mk-use-CFLAGS-from-environment.patch \ + file://0002-link.mk-use-CFLAGS-with-version.o.patch \ + file://0003-link.mk-generate-version.o-in-link-out-dir.patch \ "