123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- 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
|