[Buildroot] [PATCH v4 3/7] optee-examples: new package
Thomas Petazzoni
thomas.petazzoni at bootlin.com
Sun Feb 17 21:28:39 UTC 2019
Hello Étienne,
On Wed, 30 Jan 2019 11:47:25 +0100
Etienne Carriere <etienne.carriere at linaro.org> wrote:
> This package generates embedded Linux based OS userland client
> applications and OP-TEE OS trusted applications all embedded in
> the file system. These applications shows how to use the APIs
> OP-TEE OS is based on, both in the non secure and secure worlds.
>
> Package is added next to the OP-TEE client package in the BR
> package configuration.
>
> This change references in Buildroot the today's latest OP-TEE
> revision release tagged 3.4.0 with an added patch to fix an issue
> reported by recent GCC toolchains.
>
> Signed-off-by: Etienne Carriere <etienne.carriere at linaro.org>
I have applied to next, but with a number of changes, see below.
> diff --git a/package/optee-examples/3.4.0/0001-fix-deprecated-size_t-type-for-size.patch b/package/optee-examples/3.4.0/0001-fix-deprecated-size_t-type-for-size.patch
> new file mode 100644
> index 0000000..ba1716a
> --- /dev/null
> +++ b/package/optee-examples/3.4.0/0001-fix-deprecated-size_t-type-for-size.patch
> @@ -0,0 +1,37 @@
> +commit fca0caba591f31f66325826c74acd26aefd52dee
> +Author: Etienne Carriere <etienne.carriere at linaro.org>
> +Date: Tue Dec 18 22:35:16 2018 +0100
> +
> + secure_storage: fix deprecated size_t type for size
> +
> + size_t types is an deprecated type used in GPD API v1.0.
> + Update
> +
> + Error reported by GCC 7.3-2018.05:
> + secure_storage_ta.c:203:6: warning: passing argument 4 of 'TEE_ReadObjectData' from incompatible pointer type [-Wincompatible-pointer-types]
> + &read_bytes);
> +
> + Signed-off-by: Etienne Carriere <etienne.carriere at linaro.org>
Patches should be generated with "git format-patch" and not "git show".
Indeed, patches generated by "git format-patch" can conveniently be
applied by "git am".
I've re-generated the patch to use the proper format.
> diff --git a/package/optee-examples/3.4.0/optee-examples.hash b/package/optee-examples/3.4.0/optee-examples.hash
> new file mode 100644
> index 0000000..077fd97
> --- /dev/null
> +++ b/package/optee-examples/3.4.0/optee-examples.hash
> @@ -0,0 +1,4 @@
> +# From https://github.com/linaro-swg/optee_examples/archive/3.4.0.tar.gz
> +sha256 d833753980ac438c1675787857bb8352997352212334274de9419770097ce039 optee-examples-3.4.0.tar.gz
> +# Locally computed
> +sha256 6f1ef8449cb82ae79d2155605f7985bdf0f08e7ab5007de9b4362e8bf28733b9 LICENSE
> diff --git a/package/optee-examples/Config.in b/package/optee-examples/Config.in
> new file mode 100644
> index 0000000..a240e54
> --- /dev/null
> +++ b/package/optee-examples/Config.in
> @@ -0,0 +1,59 @@
> +config BR2_PACKAGE_OPTEE_EXAMPLES
> + bool "optee-examples"
> + depends on BR2_TARGET_OPTEE_OS
In fact, building OP-TEE itself is not sufficient, because this does
not guarantee the SDK has been built, so I have added a:
select BR2_TARGET_OPTEE_OS_SDK
here.
> + select BR2_PACKAGE_OPTEE_CLIENT
This now depends on !BR2_STATIC_LIBS, so I've propagated this
dependency.
> + help
> + Enable the OP-TEE examples package that brings examples of
> + implementation of OP-TEE non-secure client applications and
> + secure trusted applications. OP-TEE examples is a
> + component delivered by the OP-TEE project.
> +
> + Trusted application binary files are installed in the target
> + directory /lib/optee_armtz as other trusted applications.
> + At runtime OP-TEE OS can load trusted applications from this
> + non-secure filesystem/directory into the secure world for
> + execution.
> +
> + https://github.com/linaro-swg/optee_examples
> +
> +if BR2_PACKAGE_OPTEE_EXAMPLES
> +
> +choice
> + prompt "version"
> + default BR2_PACKAGE_OPTEE_EXAMPLES_LATEST
> + help
> + Select the version of OP-TEE exmaples you want to use
> +
> +config BR2_PACKAGE_OPTEE_EXAMPLES_LATEST
> + bool "3.4.0"
> + help
> + This fetches the registered release tag from the
> + OP-TEE official Git repository.
> +
> +config BR2_PACKAGE_OPTEE_EXAMPLES_CUSTOM_GIT
> + bool "Custom Git repository"
> + help
> + Sync with a specific OP-TEE Git repository.
> +
> +endchoice
Here as well, I don't think the version selection makes a lot of sense,
so I dropped it.
> +ifeq ($(BR2_aarch64),y)
> +OPTEE_EXAMPLES_SDK = $(STAGING_DIR)/lib/optee/export-ta_arm64
> +endif
> +ifeq ($(BR2_arm),y)
Changed:
endif
ifeq ($(BR2_arm),y)
to just:
else ifeq ($(BR2_arm),y)
> +OPTEE_EXAMPLES_SDK = $(STAGING_DIR)/lib/optee/export-ta_arm32
> +endif
> +
> +# Trusted Application are not built from CMake due to ta_dev_kit dependencies.
> +# We must build and install them on target.
> +define OPTEE_EXAMPLES_BUILD_TAS
> + @$(foreach f,$(wildcard $(@D)/*/ta/Makefile), \
> + $(TARGET_CONFIGURE_OPTS) \
> + $(MAKE) CROSS_COMPILE=$(TARGET_CROSS) \
> + TA_DEV_KIT_DIR=$(OPTEE_EXAMPLES_SDK) \
> + O=out -C $(dir $f) all &&) true
Convoluted syntax here. Changed to:
$(foreach f,$(wildcard $(@D)/*/ta/Makefile), \
$(TARGET_CONFIGURE_OPTS) \
$(MAKE) CROSS_COMPILE=$(TARGET_CROSS) \
TA_DEV_KIT_DIR=$(OPTEE_EXAMPLES_SDK) \
O=out -C $(dir $f) all
)
Also: could this be fixed upstream, so that the CMake build system
builds/installs everything ?
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
More information about the buildroot
mailing list