summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernhard Rosenkränzer <bernhard.rosenkraenzer.ext@huawei.com>2021-06-05 02:41:34 +0200
committerKhem Raj <raj.khem@gmail.com>2021-07-14 09:53:49 -0700
commitc07d5568996a478c49c05d7a5b63d5a21377f3c2 (patch)
tree88746eaafbf3986c23b2f9dc1af398441a307c94
parent8793b4d18b48980bb3e9eaaf86b7ee0154cf09b7 (diff)
downloadmeta-clang-c07d5568996a478c49c05d7a5b63d5a21377f3c2.tar.gz
Fix OP-TEE build with clang
Signed-off-by: Bernhard Rosenkränzer <bernhard.rosenkraenzer.ext@huawei.com>
-rw-r--r--recipes-security/optee/optee-os-stm32mp/optee-fix-build-with-clang.patch67
-rw-r--r--recipes-security/optee/optee-os-stm32mp_%.bbappend7
2 files changed, 74 insertions, 0 deletions
diff --git a/recipes-security/optee/optee-os-stm32mp/optee-fix-build-with-clang.patch b/recipes-security/optee/optee-os-stm32mp/optee-fix-build-with-clang.patch
new file mode 100644
index 0000000..6581d77
--- /dev/null
+++ b/recipes-security/optee/optee-os-stm32mp/optee-fix-build-with-clang.patch
@@ -0,0 +1,67 @@
1From: Bernhard Rosenkraenzer <bernhard.rosenkraenzer.ext@huawei.com>
2Subject: [optee-os-stm] Fix build with clang
3
4Fix build with clang: No suffix to RCC_MP_ENCLRR_OFFSET (it's used
5in assembly code), fix warning in mbedtls, look for compiler-rt
6inside the sysroot instead of on the system
7
8Signed-off-by: Bernhard Rosenkraenzer <bernhard.rosenkraenzer.ext@huawei.com>
9Upstream-Status: Pending
10
11diff -up git/core/include/drivers/stm32mp1_rcc.h.omv~ git/core/include/drivers/stm32mp1_rcc.h
12--- git/core/include/drivers/stm32mp1_rcc.h.omv~ 2021-06-04 23:35:39.741212399 +0200
13+++ git/core/include/drivers/stm32mp1_rcc.h 2021-06-04 23:37:28.856900701 +0200
14@@ -280,10 +280,10 @@
15 #define RCC_TIMGXPRER_TIMGXPRE BIT(0)
16
17 /* Offset between RCC_MP_xxxENSETR and RCC_MP_xxxENCLRR registers */
18-#define RCC_MP_ENCLRR_OFFSET 4u
19+#define RCC_MP_ENCLRR_OFFSET 4
20
21 /* Offset between RCC_MP_xxxRSTSETR and RCC_MP_xxxRSTCLRR registers */
22-#define RCC_MP_RSTCLRR_OFFSET 4u
23+#define RCC_MP_RSTCLRR_OFFSET 4
24
25 /* Fields of RCC_BDCR register */
26 #define RCC_BDCR_LSEON BIT(0)
27diff -up git/lib/libmbedtls/mbedtls/library/md5.c.omv~ git/lib/libmbedtls/mbedtls/library/md5.c
28--- git/lib/libmbedtls/mbedtls/library/md5.c.omv~ 2021-06-04 23:35:39.742212415 +0200
29+++ git/lib/libmbedtls/mbedtls/library/md5.c 2021-06-04 23:37:28.857900716 +0200
30@@ -428,8 +428,8 @@ static const unsigned char md5_test_buf[
31 { "message digest" },
32 { "abcdefghijklmnopqrstuvwxyz" },
33 { "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" },
34- { "12345678901234567890123456789012345678901234567890123456789012"
35- "345678901234567890" }
36+ { ("12345678901234567890123456789012345678901234567890123456789012"
37+ "345678901234567890") }
38 };
39
40 static const size_t md5_test_buflen[7] =
41diff -up git/mk/clang.mk.omv~ git/mk/clang.mk
42--- git/mk/clang.mk.omv~ 2021-06-04 23:35:39.742212415 +0200
43+++ git/mk/clang.mk 2021-06-04 23:38:35.887937844 +0200
44@@ -25,10 +25,11 @@ nostdinc$(sm) := -nostdinc -isystem $(sh
45 comp-cflags-warns-clang := -Wno-language-extension-token \
46 -Wno-gnu-zero-variadic-macro-arguments
47
48+SYSROOT := $(shell echo $(CC) |sed -e 's,.*--sysroot=,,;s, .*,,g')
49 # Note, use the compiler runtime library (libclang_rt.builtins.*.a) instead of
50 # libgcc for clang
51-libgcc$(sm) := $(shell $(CC$(sm)) $(CFLAGS$(arch-bits-$(sm))) \
52- -rtlib=compiler-rt -print-libgcc-file-name 2> /dev/null)
53+libgcc$(sm) := $(SYSROOT)/$(shell echo $(shell $(CC$(sm)) $(CFLAGS$(arch-bits-$(sm))) \
54+ -rtlib=compiler-rt -print-libgcc-file-name 2> /dev/null) |sed -e 's,-arm\.a,-armhf.a,')
55
56 # Core ASLR relies on the executable being ready to run from its preferred load
57 # address, because some symbols are used before the MMU is enabled and the
58@@ -36,7 +37,8 @@ libgcc$(sm) := $(shell $(CC$(sm)) $(CFLA
59 ldflag-apply-dynamic-relocs := --apply-dynamic-relocs
60
61 # Define these to something to discover accidental use
62-CC := false
63+# Not CC because we need it to determine SYSROOT
64+#CC := false
65 CXX := false
66 CPP := false
67 LD := false
diff --git a/recipes-security/optee/optee-os-stm32mp_%.bbappend b/recipes-security/optee/optee-os-stm32mp_%.bbappend
new file mode 100644
index 0000000..cb513d3
--- /dev/null
+++ b/recipes-security/optee/optee-os-stm32mp_%.bbappend
@@ -0,0 +1,7 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
2
3SRC_URI_append_toolchain-clang = " file://optee-fix-build-with-clang.patch"
4
5EXTRA_OEMAKE_append_toolchain-clang = "COMPILER=clang"
6
7DEPENDS_append_toolchain-clang = "compiler-rt"