aboutsummaryrefslogtreecommitdiff
path: root/boot/optee-os/0003-mk-core-ta-Configurable-Python-interpreter.patch
blob: 911a09b986387116d7f445056c2351c125052c9d (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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
From 49c7d2557d92993a1e09e50c961b9d4f7ab1091b Mon Sep 17 00:00:00 2001
From: Dick Olsson <hi@senzilla.io>
Date: Wed, 22 Jul 2020 08:49:12 +0200
Subject: [PATCH] mk: core: ta: Configurable Python interpreter

Build systems that manage multiple different python interpreters need
explicit control over which version of the interpreter to use.
This patch enables one to override the default interpreter with the path
to a specific one.

Signed-off-by: Dick Olsson <hi@senzilla.io>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Jerome Forissier <jerome@forissier.org>
---
 core/arch/arm/arm.mk         |  2 ++
 core/arch/arm/kernel/link.mk | 22 +++++++++++-----------
 core/sub.mk                  | 10 +++++-----
 mk/config.mk                 |  6 ++++++
 mk/lib.mk                    |  2 +-
 ta/arch/arm/link.mk          |  2 +-
 ta/arch/arm/link_shlib.mk    |  2 +-
 ta/ta.mk                     |  2 +-
 8 files changed, 28 insertions(+), 20 deletions(-)

diff --git a/core/arch/arm/arm.mk b/core/arch/arm/arm.mk
index 5c9f16ef..878035c5 100644
--- a/core/arch/arm/arm.mk
+++ b/core/arch/arm/arm.mk
@@ -245,6 +245,7 @@ ta-mk-file-export-add-ta_arm32 += CROSS_COMPILE32 ?= $$(CROSS_COMPILE)_nl_
 ta-mk-file-export-add-ta_arm32 += CROSS_COMPILE_ta_arm32 ?= $$(CROSS_COMPILE32)_nl_
 ta-mk-file-export-add-ta_arm32 += COMPILER ?= gcc_nl_
 ta-mk-file-export-add-ta_arm32 += COMPILER_ta_arm32 ?= $$(COMPILER)_nl_
+ta-mk-file-export-add-ta_arm32 += PYTHON3 ?= python3_nl_
 endif
 
 ifneq ($(filter ta_arm64,$(ta-targets)),)
@@ -275,6 +276,7 @@ ta-mk-file-export-add-ta_arm64 += CROSS_COMPILE64 ?= $$(CROSS_COMPILE)_nl_
 ta-mk-file-export-add-ta_arm64 += CROSS_COMPILE_ta_arm64 ?= $$(CROSS_COMPILE64)_nl_
 ta-mk-file-export-add-ta_arm64 += COMPILER ?= gcc_nl_
 ta-mk-file-export-add-ta_arm64 += COMPILER_ta_arm64 ?= $$(COMPILER)_nl_
+ta-mk-file-export-add-ta_arm64 += PYTHON3 ?= python3_nl_
 endif
 
 # Set cross compiler prefix for each TA target
diff --git a/core/arch/arm/kernel/link.mk b/core/arch/arm/kernel/link.mk
index 1b89b895..69375ad6 100644
--- a/core/arch/arm/kernel/link.mk
+++ b/core/arch/arm/kernel/link.mk
@@ -62,13 +62,13 @@ cleanfiles += $(link-out-dir)/text_unpaged.ld.S
 $(link-out-dir)/text_unpaged.ld.S: $(link-out-dir)/unpaged.o
 	@$(cmd-echo-silent) '  GEN     $@'
 	$(q)$(READELFcore) -S -W $< | \
-		./scripts/gen_ld_sects.py .text. > $@
+		$(PYTHON3) ./scripts/gen_ld_sects.py .text. > $@
 
 cleanfiles += $(link-out-dir)/rodata_unpaged.ld.S
 $(link-out-dir)/rodata_unpaged.ld.S: $(link-out-dir)/unpaged.o
 	@$(cmd-echo-silent) '  GEN     $@'
 	$(q)$(READELFcore) -S -W $< | \
-		./scripts/gen_ld_sects.py .rodata. > $@
+		$(PYTHON3) ./scripts/gen_ld_sects.py .rodata. > $@
 
 
 cleanfiles += $(link-out-dir)/init_entries.txt
@@ -92,12 +92,12 @@ cleanfiles += $(link-out-dir)/text_init.ld.S
 $(link-out-dir)/text_init.ld.S: $(link-out-dir)/init.o
 	@$(cmd-echo-silent) '  GEN     $@'
 	$(q)$(READELFcore) -S -W $< | \
-		./scripts/gen_ld_sects.py .text. > $@
+		$(PYTHON3) ./scripts/gen_ld_sects.py .text. > $@
 
 cleanfiles += $(link-out-dir)/rodata_init.ld.S
 $(link-out-dir)/rodata_init.ld.S: $(link-out-dir)/init.o
 	@$(cmd-echo-silent) '  GEN     $@'
-	$(q)$(READELFcore) -S -W $< | ./scripts/gen_ld_sects.py .rodata. > $@
+	$(q)$(READELFcore) -S -W $< | $(PYTHON3) ./scripts/gen_ld_sects.py .rodata. > $@
 
 -include $(link-script-dep)
 
@@ -176,39 +176,39 @@ cleanfiles += $(link-out-dir)/tee-pager.bin
 $(link-out-dir)/tee-pager.bin: $(link-out-dir)/tee.elf scripts/gen_tee_bin.py
 	@echo Warning: $@ is deprecated
 	@$(cmd-echo-silent) '  GEN     $@'
-	$(q)scripts/gen_tee_bin.py --input $< --out_tee_pager_bin $@
+	$(q)$(PYTHON3) scripts/gen_tee_bin.py --input $< --out_tee_pager_bin $@
 
 cleanfiles += $(link-out-dir)/tee-pageable.bin
 $(link-out-dir)/tee-pageable.bin: $(link-out-dir)/tee.elf scripts/gen_tee_bin.py
 	@echo Warning: $@ is deprecated
 	@$(cmd-echo-silent) '  GEN     $@'
-	$(q)scripts/gen_tee_bin.py --input $< --out_tee_pageable_bin $@
+	$(q)$(PYTHON3) scripts/gen_tee_bin.py --input $< --out_tee_pageable_bin $@
 
 all: $(link-out-dir)/tee.bin
 cleanfiles += $(link-out-dir)/tee.bin
 $(link-out-dir)/tee.bin: $(link-out-dir)/tee.elf scripts/gen_tee_bin.py
 	@$(cmd-echo-silent) '  GEN     $@'
-	$(q)scripts/gen_tee_bin.py --input $< --out_tee_bin $@
+	$(q)$(PYTHON3) scripts/gen_tee_bin.py --input $< --out_tee_bin $@
 
 all: $(link-out-dir)/tee-header_v2.bin
 cleanfiles += $(link-out-dir)/tee-header_v2.bin
 $(link-out-dir)/tee-header_v2.bin: $(link-out-dir)/tee.elf \
 				   scripts/gen_tee_bin.py
 	@$(cmd-echo-silent) '  GEN     $@'
-	$(q)scripts/gen_tee_bin.py --input $< --out_header_v2 $@
+	$(q)$(PYTHON3) scripts/gen_tee_bin.py --input $< --out_header_v2 $@
 
 all: $(link-out-dir)/tee-pager_v2.bin
 cleanfiles += $(link-out-dir)/tee-pager_v2.bin
 $(link-out-dir)/tee-pager_v2.bin: $(link-out-dir)/tee.elf scripts/gen_tee_bin.py
 	@$(cmd-echo-silent) '  GEN     $@'
-	$(q)scripts/gen_tee_bin.py --input $< --out_pager_v2 $@
+	$(q)$(PYTHON3) scripts/gen_tee_bin.py --input $< --out_pager_v2 $@
 
 all: $(link-out-dir)/tee-pageable_v2.bin
 cleanfiles += $(link-out-dir)/tee-pageable_v2.bin
 $(link-out-dir)/tee-pageable_v2.bin: $(link-out-dir)/tee.elf \
 				     scripts/gen_tee_bin.py
 	@$(cmd-echo-silent) '  GEN     $@'
-	$(q)scripts/gen_tee_bin.py --input $< --out_pageable_v2 $@
+	$(q)$(PYTHON3) scripts/gen_tee_bin.py --input $< --out_pageable_v2 $@
 
 all: $(link-out-dir)/tee.symb_sizes
 cleanfiles += $(link-out-dir)/tee.symb_sizes
@@ -222,5 +222,5 @@ mem_usage: $(link-out-dir)/tee.mem_usage
 
 $(link-out-dir)/tee.mem_usage: $(link-out-dir)/tee.elf
 	@$(cmd-echo-silent) '  GEN     $@'
-	$(q)./scripts/mem_usage.py $< > $@
+	$(q)$(PYTHON3) ./scripts/mem_usage.py $< > $@
 endif
diff --git a/core/sub.mk b/core/sub.mk
index 03cc6bc7..0959c9a9 100644
--- a/core/sub.mk
+++ b/core/sub.mk
@@ -9,13 +9,13 @@ ifeq ($(CFG_WITH_USER_TA),y)
 gensrcs-y += ta_pub_key
 produce-ta_pub_key = ta_pub_key.c
 depends-ta_pub_key = $(TA_SIGN_KEY) scripts/pem_to_pub_c.py
-recipe-ta_pub_key = scripts/pem_to_pub_c.py --prefix ta_pub_key \
+recipe-ta_pub_key = $(PYTHON3) scripts/pem_to_pub_c.py --prefix ta_pub_key \
 		--key $(TA_SIGN_KEY) --out $(sub-dir-out)/ta_pub_key.c
 
 gensrcs-y += ldelf
 produce-ldelf = ldelf_hex.c
 depends-ldelf = scripts/gen_ldelf_hex.py $(out-dir)/ldelf/ldelf.elf
-recipe-ldelf = scripts/gen_ldelf_hex.py --input $(out-dir)/ldelf/ldelf.elf \
+recipe-ldelf = $(PYTHON3) scripts/gen_ldelf_hex.py --input $(out-dir)/ldelf/ldelf.elf \
 			--output $(sub-dir-out)/ldelf_hex.c
 endif
 
@@ -25,7 +25,7 @@ early-ta-$1-uuid := $(firstword $(subst ., ,$(notdir $1)))
 gensrcs-y += early-ta-$1
 produce-early-ta-$1 = early_ta_$$(early-ta-$1-uuid).c
 depends-early-ta-$1 = $1 scripts/ta_bin_to_c.py
-recipe-early-ta-$1 = scripts/ta_bin_to_c.py --compress --ta $1 \
+recipe-early-ta-$1 = $(PYTHON3) scripts/ta_bin_to_c.py --compress --ta $1 \
 		--out $(sub-dir-out)/early_ta_$$(early-ta-$1-uuid).c
 endef
 $(foreach f, $(EARLY_TA_PATHS), $(eval $(call process_early_ta,$(f))))
@@ -40,7 +40,7 @@ core-embed-fdt-c = $(out-dir)/$(arch-dir)/dts/$(CFG_EMBED_DTB_SOURCE_FILE:.dts=.
 gensrcs-y += embedded_secure_dtb
 produce-embedded_secure_dtb = arch/$(ARCH)/dts/$(CFG_EMBED_DTB_SOURCE_FILE:.dts=.c)
 depends-embedded_secure_dtb = $(core-embed-fdt-dtb) scripts/bin_to_c.py
-recipe-embedded_secure_dtb = scripts/bin_to_c.py \
+recipe-embedded_secure_dtb = $(PYTHON3) scripts/bin_to_c.py \
 				--bin $(core-embed-fdt-dtb) \
 				--vname embedded_secure_dtb \
 				--out $(core-embed-fdt-c)
@@ -58,7 +58,7 @@ $(conf-mk-xz-base64): $(conf-mk-file)
 gensrcs-y += conf_str
 produce-conf_str = conf.mk.xz.base64.c
 depends-conf_str = $(conf-mk-xz-base64)
-recipe-conf_str = scripts/bin_to_c.py --text --bin $(conf-mk-xz-base64) \
+recipe-conf_str = $(PYTHON3) scripts/bin_to_c.py --text --bin $(conf-mk-xz-base64) \
 			--out $(sub-dir-out)/conf.mk.xz.base64.c \
 			--vname conf_str
 endif
diff --git a/mk/config.mk b/mk/config.mk
index 70732c4d..1fe65576 100644
--- a/mk/config.mk
+++ b/mk/config.mk
@@ -32,6 +32,12 @@ endif
 # Supported values: undefined, 1, 2 and 3. 3 gives more warnings.
 WARNS ?= 3
 
+# Path to the Python interpreter used by the build system.
+# This variable is set to the default python3 interpreter in the user's
+# path. But build environments that require more explicit control can
+# set the path to a specific interpreter through this variable.
+PYTHON3 ?= python3
+
 # Define DEBUG=1 to compile without optimization (forces -O0)
 # DEBUG=1
 
diff --git a/mk/lib.mk b/mk/lib.mk
index 6e890893..3bd422d6 100644
--- a/mk/lib.mk
+++ b/mk/lib.mk
@@ -72,7 +72,7 @@ $(lib-shlibstrippedfile): $(lib-shlibfile)
 
 $(lib-shlibtafile): $(lib-shlibstrippedfile) $(TA_SIGN_KEY)
 	@$(cmd-echo-silent) '  SIGN    $$@'
-	$$(q)$$(SIGN) --key $(TA_SIGN_KEY) --uuid $(libuuid) --in $$< --out $$@
+	$$(q)$$(PYTHON3) $$(SIGN) --key $(TA_SIGN_KEY) --uuid $(libuuid) --in $$< --out $$@
 
 $(lib-libuuidln): $(lib-shlibfile)
 	@$(cmd-echo-silent) '  LN      $$@'
diff --git a/ta/arch/arm/link.mk b/ta/arch/arm/link.mk
index db7d0b9a..b95c0cba 100644
--- a/ta/arch/arm/link.mk
+++ b/ta/arch/arm/link.mk
@@ -2,7 +2,7 @@ link-script$(sm) = $(ta-dev-kit-dir$(sm))/src/ta.ld.S
 link-script-pp$(sm) = $(link-out-dir$(sm))/ta.lds
 link-script-dep$(sm) = $(link-out-dir$(sm))/.ta.ld.d
 
-SIGN_ENC ?= $(ta-dev-kit-dir$(sm))/scripts/sign_encrypt.py
+SIGN_ENC ?= $(PYTHON3) $(ta-dev-kit-dir$(sm))/scripts/sign_encrypt.py
 TA_SIGN_KEY ?= $(ta-dev-kit-dir$(sm))/keys/default_ta.pem
 
 ifeq ($(CFG_ENCRYPT_TA),y)
diff --git a/ta/arch/arm/link_shlib.mk b/ta/arch/arm/link_shlib.mk
index ed81e59a..cc177ef0 100644
--- a/ta/arch/arm/link_shlib.mk
+++ b/ta/arch/arm/link_shlib.mk
@@ -47,5 +47,5 @@ $(link-out-dir)/$(shlibuuid).elf: $(link-out-dir)/$(shlibname).so
 $(link-out-dir)/$(shlibuuid).ta: $(link-out-dir)/$(shlibname).stripped.so \
 				$(TA_SIGN_KEY)
 	@$(cmd-echo-silent) '  SIGN    $@'
-	$(q)$(SIGN) --key $(TA_SIGN_KEY) --uuid $(shlibuuid) \
+	$(q)$(PYTHON3) $(SIGN) --key $(TA_SIGN_KEY) --uuid $(shlibuuid) \
 		--in $< --out $@
diff --git a/ta/ta.mk b/ta/ta.mk
index 918880f4..59ed87f7 100644
--- a/ta/ta.mk
+++ b/ta/ta.mk
@@ -67,7 +67,7 @@ $$(arm32-user-sysregs-out)/$$(arm32-user-sysregs-$(1)-h): \
 		$(1) scripts/arm32_sysreg.py
 	@$(cmd-echo-silent) '  GEN     $$@'
 	$(q)mkdir -p $$(dir $$@)
-	$(q)scripts/arm32_sysreg.py --guard __$$(arm32-user-sysregs-$(1)-h) \
+	$(q)$(PYTHON3) scripts/arm32_sysreg.py --guard __$$(arm32-user-sysregs-$(1)-h) \
 		< $$< > $$@
 
 endef #process-arm32-user-sysreg
-- 
2.20.1