1
0
mirror of https://git.yoctoproject.org/meta-ti synced 2026-07-27 14:28:05 +00:00
Files
meta-ti/recipes-security/optee/optee-os/0001-libutils-provide-empty-__getauxval-implementation.patch
T
Denys Dmytriyenko be0396863b optee-os: upgrade to upstream 3.11.0
As meta-arm has this version in master, but not in dunfell, temporarily overlay
corresponding patches locally - could be removed for the next release. Need to
alter FILESEXTRAPATHS for bbappend to locate local patches.

Since meta-arm/dunfell has 3.8-specific patches in SRC_URI, let's redefine it
completely to match 3.11-specific patch list in meta-arm/master.

Last, but not least, guard all upstream recipe varibales with "ti-soc" override
to only affect platforms in meta-ti, but not any other BSPs.

Signed-off-by: Denys Dmytriyenko <denis@denix.org>
Signed-off-by: Dan Murphy <dmurphy@ti.com>
2021-01-08 06:34:55 -06:00

63 lines
2.1 KiB
Diff

Upstream-Status: Backport
Signed-off-by: Ross Burton <ross.burton@arm.com>
From 36e784f621bf5d5be9183beba35f39426277c110 Mon Sep 17 00:00:00 2001
From: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Date: Tue, 13 Oct 2020 22:45:39 +0300
Subject: [PATCH 1/3] libutils: provide empty __getauxval() implementation
Never version of libgcc are built with LSE implementation in mind. To
determine if LSE is available on platform it calls __getauxval(), so in
some cases we can get undefined reference to __getauxval() error.
Prominent case is libgcc_eh.a library, which is used by C++ TAs. Exception
handler depends on atomic operations, so it tries to call
init_have_lse_atomics() first. This function in turn calls __getauxval(),
which causes linking error.
In the future we can make __getauxval() to return actual platform
capabilities.
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Jerome Forissier <jerome@forissier.org>
---
lib/libutils/ext/arch/arm/auxval.c | 12 ++++++++++++
lib/libutils/ext/arch/arm/sub.mk | 1 +
2 files changed, 13 insertions(+)
create mode 100644 lib/libutils/ext/arch/arm/auxval.c
diff --git a/lib/libutils/ext/arch/arm/auxval.c b/lib/libutils/ext/arch/arm/auxval.c
new file mode 100644
index 00000000..98bca850
--- /dev/null
+++ b/lib/libutils/ext/arch/arm/auxval.c
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: BSD-2-Clause
+/*
+ * Copyright (c) 2020, EPAM Systems
+ */
+
+#include <compiler.h>
+
+unsigned long int __getauxval (unsigned long int type);
+unsigned long int __getauxval (unsigned long int type __unused)
+{
+ return 0;
+}
diff --git a/lib/libutils/ext/arch/arm/sub.mk b/lib/libutils/ext/arch/arm/sub.mk
index dc5eed67..2e779066 100644
--- a/lib/libutils/ext/arch/arm/sub.mk
+++ b/lib/libutils/ext/arch/arm/sub.mk
@@ -3,6 +3,7 @@ srcs-$(CFG_ARM32_$(sm)) += aeabi_unwind.c
endif
srcs-$(CFG_ARM32_$(sm)) += atomic_a32.S
srcs-$(CFG_ARM64_$(sm)) += atomic_a64.S
+srcs-y += auxval.c
ifneq ($(sm),ldelf) # TA, core
srcs-$(CFG_ARM32_$(sm)) += mcount_a32.S
srcs-$(CFG_ARM64_$(sm)) += mcount_a64.S
--
2.25.1