package/optee-*: support BR2_STATIC_LIBS=y

Patch current optee-client 3.4.0 to support building resources
with static linkage of executable binaries with the user libraries.
The optee-client patch is under review in the OP-TEE project [1] and
should be merged in the next OP-TEE release 3.5.0.

This change drops !BR2_STATIC_LIBS constraint on package optee-client
and its dependent packages that are optee-benchmark, optee-examples,
and optee-test.

[1] https://github.com/OP-TEE/optee_client/pull/147

Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Etienne Carriere 2019-03-08 10:55:09 +01:00 committed by Thomas Petazzoni
parent b8f7fe53c7
commit 2d242e0e56
5 changed files with 59 additions and 12 deletions

View File

@ -1,6 +1,5 @@
config BR2_PACKAGE_OPTEE_BENCHMARK
bool "optee-benchmark"
depends on !BR2_STATIC_LIBS # optee-client
depends on BR2_TOOLCHAIN_HAS_THREADS # optee-client
select BR2_PACKAGE_OPTEE_CLIENT
select BR2_PACKAGE_LIBYAML
@ -12,5 +11,5 @@ config BR2_PACKAGE_OPTEE_BENCHMARK
http://github.com/linaro-swg/optee_benchmark
comment "optee-benchmark needs a toolchain w/ dynamic library and threads"
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
comment "optee-benchmark needs a toolchain w/ threads"
depends on !BR2_TOOLCHAIN_HAS_THREADS

View File

@ -0,0 +1,51 @@
From 857ed6a900e2f16035a88e73e47d79e9251f6544 Mon Sep 17 00:00:00 2001
From: Etienne Carriere <etienne.carriere@linaro.org>
Date: Fri, 1 Mar 2019 12:31:48 +0100
Subject: [PATCH] cmake: support BUILD_STATIC_LIBS/BUILD_SHARED_LIBS
CMake variables BUILD_STATIC_LIBS and BUILD_SHARED_LIBS
set constraints on libraries and executable linkage.
With this change OP-TEE client CMake script builds and installs the
embedded files with the expected linkage configuration.
Reported-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
---
libteec/CMakeLists.txt | 5 +++--
tee-supplicant/CMakeLists.txt | 2 +-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/libteec/CMakeLists.txt b/libteec/CMakeLists.txt
index 3ec8f66..e3495fb 100644
--- a/libteec/CMakeLists.txt
+++ b/libteec/CMakeLists.txt
@@ -33,7 +33,7 @@ endif()
################################################################################
# Built library
################################################################################
-add_library (teec SHARED ${SRC})
+add_library (teec ${SRC})
set_target_properties (teec PROPERTIES
VERSION ${PROJECT_VERSION}
@@ -71,4 +71,5 @@ target_link_libraries (teec
################################################################################
# FIXME: This should in someway harmonize with CFG_TEE_CLIENT_LOAD_PATH
# FIXME: Should we change this to /usr/local/lib?
-install (TARGETS teec DESTINATION ${CMAKE_INSTALL_LIBDIR})
+install (TARGETS teec LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
diff --git a/tee-supplicant/CMakeLists.txt b/tee-supplicant/CMakeLists.txt
index d2d3afd..e663be9 100644
--- a/tee-supplicant/CMakeLists.txt
+++ b/tee-supplicant/CMakeLists.txt
@@ -85,4 +85,4 @@ target_link_libraries (${PROJECT_NAME}
################################################################################
# Install targets
################################################################################
-install (TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_SBINDIR})
+install (TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR})
--
1.9.1

View File

@ -1,6 +1,5 @@
config BR2_PACKAGE_OPTEE_CLIENT
bool "optee-client"
depends on !BR2_STATIC_LIBS
depends on BR2_TOOLCHAIN_HAS_THREADS
help
Enable the OP-TEE client package that brings non-secure
@ -14,5 +13,5 @@ config BR2_PACKAGE_OPTEE_CLIENT
https://github.com/OP-TEE/optee_client
comment "optee-client needs a toolchain w/ dynamic library and threads"
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
comment "optee-client needs a toolchain w/ threads"
depends on !BR2_TOOLCHAIN_HAS_THREADS

View File

@ -1,7 +1,6 @@
config BR2_PACKAGE_OPTEE_EXAMPLES
bool "optee-examples"
depends on BR2_TARGET_OPTEE_OS
depends on !BR2_STATIC_LIBS # optee-client
depends on BR2_TOOLCHAIN_HAS_THREADS # optee-client
select BR2_PACKAGE_OPTEE_CLIENT
select BR2_TARGET_OPTEE_OS_SDK
@ -19,6 +18,6 @@ config BR2_PACKAGE_OPTEE_EXAMPLES
https://github.com/linaro-swg/optee_examples
comment "optee-examples needs a toolchain w/ dynamic library and threads"
comment "optee-examples needs a toolchain w/ threads"
depends on BR2_TARGET_OPTEE_OS
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
depends on !BR2_TOOLCHAIN_HAS_THREADS

View File

@ -1,7 +1,6 @@
config BR2_PACKAGE_OPTEE_TEST
bool "optee-test"
depends on BR2_TARGET_OPTEE_OS
depends on !BR2_STATIC_LIBS # optee-client
depends on BR2_TOOLCHAIN_HAS_THREADS # optee-client
select BR2_PACKAGE_OPTEE_CLIENT
select BR2_TARGET_OPTEE_OS_SDK
@ -23,6 +22,6 @@ config BR2_PACKAGE_OPTEE_TEST
http://github.com/OP-TEE/optee_test
comment "optee-test needs a toolchain w/ dynamic library and threads"
comment "optee-test needs a toolchain w/ threads"
depends on BR2_TARGET_OPTEE_OS
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
depends on !BR2_TOOLCHAIN_HAS_THREADS