summaryrefslogtreecommitdiffstats
path: root/dynamic-layers/meta-st-stm32mp/recipes-security/optee/optee-os-stm32mp/optee-fix-build-with-clang.patch
blob: 6581d77efefd4b71b78aade32f51b01339e4f5c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
From: Bernhard Rosenkraenzer <bernhard.rosenkraenzer.ext@huawei.com>
Subject: [optee-os-stm] Fix build with clang

Fix build with clang: No suffix to RCC_MP_ENCLRR_OFFSET (it's used
in assembly code), fix warning in mbedtls, look for compiler-rt
inside the sysroot instead of on the system

Signed-off-by: Bernhard Rosenkraenzer <bernhard.rosenkraenzer.ext@huawei.com>
Upstream-Status: Pending

diff -up git/core/include/drivers/stm32mp1_rcc.h.omv~ git/core/include/drivers/stm32mp1_rcc.h
--- git/core/include/drivers/stm32mp1_rcc.h.omv~	2021-06-04 23:35:39.741212399 +0200
+++ git/core/include/drivers/stm32mp1_rcc.h	2021-06-04 23:37:28.856900701 +0200
@@ -280,10 +280,10 @@
 #define RCC_TIMGXPRER_TIMGXPRE		BIT(0)
 
 /* Offset between RCC_MP_xxxENSETR and RCC_MP_xxxENCLRR registers */
-#define RCC_MP_ENCLRR_OFFSET		4u
+#define RCC_MP_ENCLRR_OFFSET		4
 
 /* Offset between RCC_MP_xxxRSTSETR and RCC_MP_xxxRSTCLRR registers */
-#define RCC_MP_RSTCLRR_OFFSET		4u
+#define RCC_MP_RSTCLRR_OFFSET		4
 
 /* Fields of RCC_BDCR register */
 #define RCC_BDCR_LSEON			BIT(0)
diff -up git/lib/libmbedtls/mbedtls/library/md5.c.omv~ git/lib/libmbedtls/mbedtls/library/md5.c
--- git/lib/libmbedtls/mbedtls/library/md5.c.omv~	2021-06-04 23:35:39.742212415 +0200
+++ git/lib/libmbedtls/mbedtls/library/md5.c	2021-06-04 23:37:28.857900716 +0200
@@ -428,8 +428,8 @@ static const unsigned char md5_test_buf[
     { "message digest" },
     { "abcdefghijklmnopqrstuvwxyz" },
     { "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" },
-    { "12345678901234567890123456789012345678901234567890123456789012"
-      "345678901234567890" }
+    { ("12345678901234567890123456789012345678901234567890123456789012"
+      "345678901234567890") }
 };
 
 static const size_t md5_test_buflen[7] =
diff -up git/mk/clang.mk.omv~ git/mk/clang.mk
--- git/mk/clang.mk.omv~	2021-06-04 23:35:39.742212415 +0200
+++ git/mk/clang.mk	2021-06-04 23:38:35.887937844 +0200
@@ -25,10 +25,11 @@ nostdinc$(sm)	:= -nostdinc -isystem $(sh
 comp-cflags-warns-clang := -Wno-language-extension-token \
 			 -Wno-gnu-zero-variadic-macro-arguments
 
+SYSROOT := $(shell echo $(CC) |sed -e 's,.*--sysroot=,,;s, .*,,g')
 # Note, use the compiler runtime library (libclang_rt.builtins.*.a) instead of
 # libgcc for clang
-libgcc$(sm)	:= $(shell $(CC$(sm)) $(CFLAGS$(arch-bits-$(sm))) \
-			-rtlib=compiler-rt -print-libgcc-file-name 2> /dev/null)
+libgcc$(sm)	:= $(SYSROOT)/$(shell echo $(shell $(CC$(sm)) $(CFLAGS$(arch-bits-$(sm))) \
+			-rtlib=compiler-rt -print-libgcc-file-name 2> /dev/null) |sed -e 's,-arm\.a,-armhf.a,')
 
 # Core ASLR relies on the executable being ready to run from its preferred load
 # address, because some symbols are used before the MMU is enabled and the
@@ -36,7 +37,8 @@ libgcc$(sm)	:= $(shell $(CC$(sm)) $(CFLA
 ldflag-apply-dynamic-relocs := --apply-dynamic-relocs
 
 # Define these to something to discover accidental use
-CC		:= false
+# Not CC because we need it to determine SYSROOT
+#CC		:= false
 CXX		:= false
 CPP		:= false
 LD		:= false