mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-06-06 02:40:18 +00:00
arm-bsp/optee: remove 3.18 recipes and patches
3.18 recipes and patches are no longer in use and can be removed Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
@@ -1,3 +0,0 @@
|
||||
require recipes-security/optee/optee-client.inc
|
||||
|
||||
SRCREV = "e7cba71cc6e2ecd02f412c7e9ee104f0a5dffc6f"
|
||||
-93
@@ -1,93 +0,0 @@
|
||||
From 63445958678b58c5adc7eca476b216e5dc0f4195 Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Forissier <jerome.forissier@linaro.org>
|
||||
Date: Tue, 23 Aug 2022 11:41:00 +0000
|
||||
Subject: [PATCH] core, ldelf: link: add -z execstack
|
||||
|
||||
When building for arm32 with GNU binutils 2.39, the linker outputs
|
||||
warnings when generating some TEE core binaries (all_obj.o, init.o,
|
||||
unpaged.o and tee.elf) as well as ldelf.elf:
|
||||
|
||||
arm-poky-linux-gnueabi-ld.bfd: warning: atomic_a32.o: missing .note.GNU-stack section implies executable stack
|
||||
arm-poky-linux-gnueabi-ld.bfd: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
||||
|
||||
The permissions used when mapping the TEE core stacks do not depend on
|
||||
any metadata found in the ELF file. Similarly when the TEE core loads
|
||||
ldelf it already creates a non-executable stack regardless of ELF
|
||||
information. Therefore we can safely ignore the warnings. This is done
|
||||
by adding the '-z execstack' option.
|
||||
|
||||
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
|
||||
|
||||
Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
|
||||
Upstream-Status: Backport [https://github.com/OP-TEE/optee_os/pull/5499]
|
||||
---
|
||||
core/arch/arm/kernel/link.mk | 13 +++++++++----
|
||||
ldelf/link.mk | 3 +++
|
||||
2 files changed, 12 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/core/arch/arm/kernel/link.mk b/core/arch/arm/kernel/link.mk
|
||||
index c39d43cbfc5b..0e96e606cd9d 100644
|
||||
--- a/core/arch/arm/kernel/link.mk
|
||||
+++ b/core/arch/arm/kernel/link.mk
|
||||
@@ -9,6 +9,11 @@ link-script-dep = $(link-out-dir)/.kern.ld.d
|
||||
|
||||
AWK = awk
|
||||
|
||||
+link-ldflags-common += $(call ld-option,--no-warn-rwx-segments)
|
||||
+ifeq ($(CFG_ARM32_core),y)
|
||||
+link-ldflags-common += $(call ld-option,--no-warn-execstack)
|
||||
+endif
|
||||
+
|
||||
link-ldflags = $(LDFLAGS)
|
||||
ifeq ($(CFG_CORE_ASLR),y)
|
||||
link-ldflags += -pie -Bsymbolic -z norelro $(ldflag-apply-dynamic-relocs)
|
||||
@@ -31,7 +36,7 @@ link-ldflags += -T $(link-script-pp) -Map=$(link-out-dir)/tee.map
|
||||
link-ldflags += --sort-section=alignment
|
||||
link-ldflags += --fatal-warnings
|
||||
link-ldflags += --gc-sections
|
||||
-link-ldflags += $(call ld-option,--no-warn-rwx-segments)
|
||||
+link-ldflags += $(link-ldflags-common)
|
||||
|
||||
link-ldadd = $(LDADD)
|
||||
link-ldadd += $(ldflags-external)
|
||||
@@ -56,7 +61,7 @@ link-script-cppflags := \
|
||||
$(cppflagscore))
|
||||
|
||||
ldargs-all_objs := -T $(link-script-dummy) --no-check-sections \
|
||||
- $(call ld-option,--no-warn-rwx-segments) \
|
||||
+ $(link-ldflags-common) \
|
||||
$(link-objs) $(link-ldadd) $(libgcccore)
|
||||
cleanfiles += $(link-out-dir)/all_objs.o
|
||||
$(link-out-dir)/all_objs.o: $(objs) $(libdeps) $(MAKEFILE_LIST)
|
||||
@@ -70,7 +75,7 @@ $(link-out-dir)/unpaged_entries.txt: $(link-out-dir)/all_objs.o
|
||||
$(AWK) '/ ____keep_pager/ { printf "-u%s ", $$3 }' > $@
|
||||
|
||||
unpaged-ldargs := -T $(link-script-dummy) --no-check-sections --gc-sections \
|
||||
- $(call ld-option,--no-warn-rwx-segments)
|
||||
+ $(link-ldflags-common)
|
||||
unpaged-ldadd := $(objs) $(link-ldadd) $(libgcccore)
|
||||
cleanfiles += $(link-out-dir)/unpaged.o
|
||||
$(link-out-dir)/unpaged.o: $(link-out-dir)/unpaged_entries.txt
|
||||
@@ -99,7 +104,7 @@ $(link-out-dir)/init_entries.txt: $(link-out-dir)/all_objs.o
|
||||
$(AWK) '/ ____keep_init/ { printf "-u%s ", $$3 }' > $@
|
||||
|
||||
init-ldargs := -T $(link-script-dummy) --no-check-sections --gc-sections \
|
||||
- $(call ld-option,--no-warn-rwx-segments)
|
||||
+ $(link-ldflags-common)
|
||||
init-ldadd := $(link-objs-init) $(link-out-dir)/version.o $(link-ldadd) \
|
||||
$(libgcccore)
|
||||
cleanfiles += $(link-out-dir)/init.o
|
||||
diff --git a/ldelf/link.mk b/ldelf/link.mk
|
||||
index 64c8212a06fa..bd49551e7065 100644
|
||||
--- a/ldelf/link.mk
|
||||
+++ b/ldelf/link.mk
|
||||
@@ -20,6 +20,9 @@ link-ldflags += -z max-page-size=4096 # OP-TEE always uses 4K alignment
|
||||
ifeq ($(CFG_CORE_BTI),y)
|
||||
link-ldflags += $(call ld-option,-z force-bti) --fatal-warnings
|
||||
endif
|
||||
+ifeq ($(CFG_ARM32_$(sm)), y)
|
||||
+link-ldflags += $(call ld-option,--no-warn-execstack)
|
||||
+endif
|
||||
link-ldflags += $(link-ldflags$(sm))
|
||||
|
||||
link-ldadd = $(addprefix -L,$(libdirs))
|
||||
-127
@@ -1,127 +0,0 @@
|
||||
From 1a991cbedf8647d5a1e7c312614f7867c3940968 Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Forissier <jerome.forissier@linaro.org>
|
||||
Date: Tue, 23 Aug 2022 12:31:46 +0000
|
||||
Subject: [PATCH] arm32: libutils, libutee, ta: add .note.GNU-stack section to
|
||||
|
||||
.S files
|
||||
|
||||
When building for arm32 with GNU binutils 2.39, the linker outputs
|
||||
warnings when linking Trusted Applications:
|
||||
|
||||
arm-unknown-linux-uclibcgnueabihf-ld.bfd: warning: utee_syscalls_a32.o: missing .note.GNU-stack section implies executable stack
|
||||
arm-unknown-linux-uclibcgnueabihf-ld.bfd: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
||||
|
||||
We could silence the warning by adding the '-z execstack' option to the
|
||||
TA link flags, like we did in the parent commit for the TEE core and
|
||||
ldelf. Indeed, ldelf always allocates a non-executable piece of memory
|
||||
for the TA to use as a stack.
|
||||
|
||||
However it seems preferable to comply with the common ELF practices in
|
||||
this case. A better fix is therefore to add the missing .note.GNU-stack
|
||||
sections in the assembler files.
|
||||
|
||||
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
|
||||
|
||||
Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
|
||||
Upstream-Status: Backport [https://github.com/OP-TEE/optee_os/pull/5499]
|
||||
---
|
||||
lib/libutee/arch/arm/utee_syscalls_a32.S | 2 ++
|
||||
lib/libutils/ext/arch/arm/atomic_a32.S | 2 ++
|
||||
lib/libutils/ext/arch/arm/mcount_a32.S | 2 ++
|
||||
lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S | 2 ++
|
||||
lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S | 2 ++
|
||||
lib/libutils/isoc/arch/arm/setjmp_a32.S | 2 ++
|
||||
ta/arch/arm/ta_entry_a32.S | 2 ++
|
||||
7 files changed, 14 insertions(+)
|
||||
|
||||
diff --git a/lib/libutee/arch/arm/utee_syscalls_a32.S b/lib/libutee/arch/arm/utee_syscalls_a32.S
|
||||
index 6e621ca6e06d..af405f62723c 100644
|
||||
--- a/lib/libutee/arch/arm/utee_syscalls_a32.S
|
||||
+++ b/lib/libutee/arch/arm/utee_syscalls_a32.S
|
||||
@@ -7,6 +7,8 @@
|
||||
#include <tee_syscall_numbers.h>
|
||||
#include <asm.S>
|
||||
|
||||
+ .section .note.GNU-stack,"",%progbits
|
||||
+
|
||||
.section .text
|
||||
.balign 4
|
||||
.code 32
|
||||
diff --git a/lib/libutils/ext/arch/arm/atomic_a32.S b/lib/libutils/ext/arch/arm/atomic_a32.S
|
||||
index eaef6914734e..2be73ffadcc9 100644
|
||||
--- a/lib/libutils/ext/arch/arm/atomic_a32.S
|
||||
+++ b/lib/libutils/ext/arch/arm/atomic_a32.S
|
||||
@@ -5,6 +5,8 @@
|
||||
|
||||
#include <asm.S>
|
||||
|
||||
+ .section .note.GNU-stack,"",%progbits
|
||||
+
|
||||
/* uint32_t atomic_inc32(uint32_t *v); */
|
||||
FUNC atomic_inc32 , :
|
||||
ldrex r1, [r0]
|
||||
diff --git a/lib/libutils/ext/arch/arm/mcount_a32.S b/lib/libutils/ext/arch/arm/mcount_a32.S
|
||||
index 51439a23014e..54dc3c02da66 100644
|
||||
--- a/lib/libutils/ext/arch/arm/mcount_a32.S
|
||||
+++ b/lib/libutils/ext/arch/arm/mcount_a32.S
|
||||
@@ -7,6 +7,8 @@
|
||||
|
||||
#if defined(CFG_TA_GPROF_SUPPORT) || defined(CFG_FTRACE_SUPPORT)
|
||||
|
||||
+ .section .note.GNU-stack,"",%progbits
|
||||
+
|
||||
/*
|
||||
* Convert return address to call site address by subtracting the size of the
|
||||
* mcount call instruction (blx __gnu_mcount_nc).
|
||||
diff --git a/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S b/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S
|
||||
index a600c879668c..37ae9ec6f9f1 100644
|
||||
--- a/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S
|
||||
+++ b/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S
|
||||
@@ -5,6 +5,8 @@
|
||||
|
||||
#include <asm.S>
|
||||
|
||||
+ .section .note.GNU-stack,"",%progbits
|
||||
+
|
||||
/*
|
||||
* signed ret_idivmod_values(signed quot, signed rem);
|
||||
* return quotient and remaining the EABI way (regs r0,r1)
|
||||
diff --git a/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S b/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S
|
||||
index 2dc50bc98bbf..5c3353e2c1ba 100644
|
||||
--- a/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S
|
||||
+++ b/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S
|
||||
@@ -5,6 +5,8 @@
|
||||
|
||||
#include <asm.S>
|
||||
|
||||
+ .section .note.GNU-stack,"",%progbits
|
||||
+
|
||||
/*
|
||||
* __value_in_regs lldiv_t __aeabi_ldivmod( long long n, long long d)
|
||||
*/
|
||||
diff --git a/lib/libutils/isoc/arch/arm/setjmp_a32.S b/lib/libutils/isoc/arch/arm/setjmp_a32.S
|
||||
index 43ea593758c9..f8a0b70df705 100644
|
||||
--- a/lib/libutils/isoc/arch/arm/setjmp_a32.S
|
||||
+++ b/lib/libutils/isoc/arch/arm/setjmp_a32.S
|
||||
@@ -51,6 +51,8 @@
|
||||
#define SIZE(x)
|
||||
#endif
|
||||
|
||||
+ .section .note.GNU-stack,"",%progbits
|
||||
+
|
||||
/* Arm/Thumb interworking support:
|
||||
|
||||
The interworking scheme expects functions to use a BX instruction
|
||||
diff --git a/ta/arch/arm/ta_entry_a32.S b/ta/arch/arm/ta_entry_a32.S
|
||||
index d2f8a69daa7f..cd9a12f9dbf9 100644
|
||||
--- a/ta/arch/arm/ta_entry_a32.S
|
||||
+++ b/ta/arch/arm/ta_entry_a32.S
|
||||
@@ -5,6 +5,8 @@
|
||||
|
||||
#include <asm.S>
|
||||
|
||||
+ .section .note.GNU-stack,"",%progbits
|
||||
+
|
||||
/*
|
||||
* This function is the bottom of the user call stack. Mark it as such so that
|
||||
* the unwinding code won't try to go further down.
|
||||
@@ -1,24 +0,0 @@
|
||||
require optee-os_3.18.0.bb
|
||||
|
||||
SUMMARY = "OP-TEE Trusted OS TA devkit"
|
||||
DESCRIPTION = "OP-TEE TA devkit for build TAs"
|
||||
HOMEPAGE = "https://www.op-tee.org/"
|
||||
|
||||
DEPENDS += "python3-pycryptodome-native"
|
||||
|
||||
do_install() {
|
||||
#install TA devkit
|
||||
install -d ${D}${includedir}/optee/export-user_ta/
|
||||
for f in ${B}/export-ta_${OPTEE_ARCH}/* ; do
|
||||
cp -aR $f ${D}${includedir}/optee/export-user_ta/
|
||||
done
|
||||
}
|
||||
|
||||
do_deploy() {
|
||||
echo "Do not inherit do_deploy from optee-os."
|
||||
}
|
||||
|
||||
FILES:${PN} = "${includedir}/optee/"
|
||||
|
||||
# Build paths are currently embedded
|
||||
INSANE_SKIP:${PN}-dev += "buildpaths"
|
||||
@@ -1,6 +0,0 @@
|
||||
# Machine specific configurations
|
||||
|
||||
MACHINE_OPTEE_OS_TADEVKIT_REQUIRE ?= ""
|
||||
MACHINE_OPTEE_OS_TADEVKIT_REQUIRE:tc = "optee-os-tc.inc"
|
||||
|
||||
require ${MACHINE_OPTEE_OS_TADEVKIT_REQUIRE}
|
||||
@@ -1,15 +0,0 @@
|
||||
require recipes-security/optee/optee-os.inc
|
||||
|
||||
DEPENDS += "dtc-native"
|
||||
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${P}:"
|
||||
|
||||
SRCREV = "1ee647035939e073a2e8dddb727c0f019cc035f1"
|
||||
SRC_URI += " \
|
||||
file://0001-allow-setting-sysroot-for-libgcc-lookup.patch \
|
||||
file://0002-optee-enable-clang-support.patch \
|
||||
file://0003-core-link-add-no-warn-rwx-segments.patch \
|
||||
file://0004-core-Define-section-attributes-for-clang.patch \
|
||||
file://0005-core-ldelf-link-add-z-execstack.patch \
|
||||
file://0006-arm32-libutils-libutee-ta-add-.note.GNU-stack-sectio.patch \
|
||||
"
|
||||
@@ -1,6 +0,0 @@
|
||||
# Machine specific configurations
|
||||
|
||||
MACHINE_OPTEE_OS_REQUIRE ?= ""
|
||||
MACHINE_OPTEE_OS_REQUIRE:tc = "optee-os-tc.inc"
|
||||
|
||||
require ${MACHINE_OPTEE_OS_REQUIRE}
|
||||
@@ -1,10 +0,0 @@
|
||||
require recipes-security/optee/optee-test.inc
|
||||
|
||||
SRC_URI += " \
|
||||
file://0001-xtest-regression_1000-remove-unneeded-stat.h-include.patch \
|
||||
"
|
||||
SRCREV = "da5282a011b40621a2cf7a296c11a35c833ed91b"
|
||||
|
||||
EXTRA_OEMAKE:append:libc-musl = " OPTEE_OPENSSL_EXPORT=${STAGING_INCDIR}"
|
||||
DEPENDS:append:libc-musl = " openssl"
|
||||
CFLAGS:append:libc-musl = " -Wno-error=deprecated-declarations"
|
||||
Reference in New Issue
Block a user