From 2dd250b3785663c3a2a2c9349ad55d79bb443899 Mon Sep 17 00:00:00 2001 From: Eero Aaltonen Date: Thu, 10 Aug 2023 15:56:13 +0300 Subject: [PATCH 1/5] cmake: remove whitespace before parenthesis The style used by the CMake project itself and the most widely used CMake style does not place white space between the function/macro name and the parenthesis. Align with the common style. Signed-off-by: Eero Aaltonen Acked-by: Jerome Forissier Acked-by: Etienne Carriere --- CMakeLists.txt | 26 +++++------ libckteec/CMakeLists.txt | 12 ++--- libckteec/include/CMakeLists.txt | 4 +- libseteec/CMakeLists.txt | 12 ++--- libseteec/include/CMakeLists.txt | 4 +- libteec/CMakeLists.txt | 26 +++++------ public/CMakeLists.txt | 4 +- tee-supplicant/CMakeLists.txt | 76 ++++++++++++++++---------------- 8 files changed, 82 insertions(+), 82 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a31fa4b8..a198eb94 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,11 +1,11 @@ -cmake_minimum_required (VERSION 3.4) -project (optee_client C) +cmake_minimum_required(VERSION 3.4) +project(optee_client C) # https://cmake.org/Wiki/CMake_Useful_Variables -set (CMAKE_TOOLCHAIN_FILE CMakeToolchain.txt) +set(CMAKE_TOOLCHAIN_FILE CMakeToolchain.txt) -option (CFG_WERROR "Build with -Werror" TRUE) -option (WITH_TEEACL "Build libteeacl" TRUE) +option(CFG_WERROR "Build with -Werror" TRUE) +option(WITH_TEEACL "Build libteeacl" TRUE) include(GNUInstallDirs) @@ -13,7 +13,7 @@ include(GNUInstallDirs) # Compiler flags: # We want to use the same flags in the entire optee_client git ################################################################################ -add_compile_options ( +add_compile_options( -Wall -Wbad-function-cast -Wcast-align -Werror-implicit-function-declaration -Wextra -Wfloat-equal -Wformat-nonliteral -Wformat-security @@ -38,13 +38,13 @@ if(CCACHE_FOUND) set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) endif(CCACHE_FOUND) -add_subdirectory (libteec) -add_subdirectory (tee-supplicant) -add_subdirectory (public) -add_subdirectory (libckteec) +add_subdirectory(libteec) +add_subdirectory(tee-supplicant) +add_subdirectory(public) +add_subdirectory(libckteec) if(WITH_TEEACL) - find_package (PkgConfig REQUIRED) + find_package(PkgConfig REQUIRED) pkg_check_modules(uuid REQUIRED IMPORTED_TARGET uuid) - add_subdirectory (libteeacl) + add_subdirectory(libteeacl) endif(WITH_TEEACL) -add_subdirectory (libseteec) +add_subdirectory(libseteec) diff --git a/libckteec/CMakeLists.txt b/libckteec/CMakeLists.txt index 26c050eb..978e6652 100644 --- a/libckteec/CMakeLists.txt +++ b/libckteec/CMakeLists.txt @@ -15,7 +15,7 @@ include(GNUInstallDirs) ################################################################################ # Source files ################################################################################ -set (SRC +set(SRC src/pkcs11_api.c src/ck_debug.c src/ck_helpers.c @@ -29,9 +29,9 @@ set (SRC ################################################################################ # Built library ################################################################################ -add_library (ckteec ${SRC}) +add_library(ckteec ${SRC}) -set_target_properties (ckteec PROPERTIES +set_target_properties(ckteec PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} ) @@ -39,7 +39,7 @@ set_target_properties (ckteec PROPERTIES ################################################################################ # Flags always set ################################################################################ -target_compile_definitions (ckteec +target_compile_definitions(ckteec PRIVATE -D_GNU_SOURCE PRIVATE -DBINARY_PREFIX="LT" ) @@ -61,7 +61,7 @@ target_include_directories(teec PUBLIC include ) -target_link_libraries (ckteec +target_link_libraries(ckteec PRIVATE pthread PRIVATE teec PRIVATE m @@ -70,7 +70,7 @@ target_link_libraries (ckteec ################################################################################ # Install targets ################################################################################ -install (TARGETS ckteec +install(TARGETS ckteec DESTINATION ${CMAKE_INSTALL_LIBDIR} ) diff --git a/libckteec/include/CMakeLists.txt b/libckteec/include/CMakeLists.txt index 826bb481..c3420122 100644 --- a/libckteec/include/CMakeLists.txt +++ b/libckteec/include/CMakeLists.txt @@ -1,4 +1,4 @@ -project (libckteec-headers C) +project(libckteec-headers C) FILE(GLOB INSTALL_HEADERS "*.h") @@ -9,4 +9,4 @@ target_include_directories( $ ) -install (FILES ${INSTALL_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +install(FILES ${INSTALL_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) diff --git a/libseteec/CMakeLists.txt b/libseteec/CMakeLists.txt index 5080231d..cabf92f0 100644 --- a/libseteec/CMakeLists.txt +++ b/libseteec/CMakeLists.txt @@ -15,16 +15,16 @@ include(GNUInstallDirs) ################################################################################ # Source files ################################################################################ -set (SRC +set(SRC src/se.c ) ################################################################################ # Built library ################################################################################ -add_library (seteec ${SRC}) +add_library(seteec ${SRC}) -set_target_properties (seteec PROPERTIES +set_target_properties(seteec PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} ) @@ -32,7 +32,7 @@ set_target_properties (seteec PROPERTIES ################################################################################ # Flags always set ################################################################################ -target_compile_definitions (seteec +target_compile_definitions(seteec PRIVATE -D_GNU_SOURCE PRIVATE -DBINARY_PREFIX="LT" ) @@ -50,7 +50,7 @@ target_include_directories(seteec PRIVATE src ) -target_link_libraries (seteec +target_link_libraries(seteec PRIVATE pthread PRIVATE teec ) @@ -58,7 +58,7 @@ target_link_libraries (seteec ################################################################################ # Install targets ################################################################################ -install (TARGETS seteec +install(TARGETS seteec DESTINATION ${CMAKE_INSTALL_LIBDIR} ) diff --git a/libseteec/include/CMakeLists.txt b/libseteec/include/CMakeLists.txt index 92415744..ee6faddc 100644 --- a/libseteec/include/CMakeLists.txt +++ b/libseteec/include/CMakeLists.txt @@ -1,7 +1,7 @@ -project (libseteec-headers C) +project(libseteec-headers C) FILE(GLOB INSTALL_HEADERS "*.h") add_library(${PROJECT_NAME} INTERFACE) -install (FILES ${INSTALL_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +install(FILES ${INSTALL_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) diff --git a/libteec/CMakeLists.txt b/libteec/CMakeLists.txt index b546e503..fb4073d3 100644 --- a/libteec/CMakeLists.txt +++ b/libteec/CMakeLists.txt @@ -13,32 +13,32 @@ endif() ################################################################################ # Configuration flags always included ################################################################################ -option (CFG_TEE_BENCHMARK "Build with benchmark support" OFF) +option(CFG_TEE_BENCHMARK "Build with benchmark support" OFF) -set (CFG_TEE_CLIENT_LOG_LEVEL "1" CACHE STRING "libteec log level") -set (CFG_TEE_CLIENT_LOG_FILE "/data/tee/teec.log" CACHE STRING "Location of libteec log") +set(CFG_TEE_CLIENT_LOG_LEVEL "1" CACHE STRING "libteec log level") +set(CFG_TEE_CLIENT_LOG_FILE "/data/tee/teec.log" CACHE STRING "Location of libteec log") ################################################################################ # Source files ################################################################################ -set (SRC +set(SRC src/tee_client_api.c src/teec_trace.c ) -if (CFG_TEE_BENCHMARK) - set (SRC ${SRC} src/teec_benchmark.c) +if(CFG_TEE_BENCHMARK) + set(SRC ${SRC} src/teec_benchmark.c) endif() ################################################################################ # Built library ################################################################################ -add_library (teec ${SRC}) +add_library(teec ${SRC}) set(libteectgt teec) configure_file(libteec.pc.in libteec.pc @ONLY) -set_target_properties (teec PROPERTIES +set_target_properties(teec PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} ) @@ -46,7 +46,7 @@ set_target_properties (teec PROPERTIES ################################################################################ # Flags always set ################################################################################ -target_compile_definitions (teec +target_compile_definitions(teec PRIVATE -D_GNU_SOURCE PRIVATE -DDEBUGLEVEL_${CFG_TEE_CLIENT_LOG_LEVEL} PRIVATE -DTEEC_LOG_FILE="${CFG_TEE_CLIENT_LOG_FILE}" @@ -56,8 +56,8 @@ target_compile_definitions (teec ################################################################################ # Optional flags ################################################################################ -if (CFG_TEE_BENCHMARK) - target_compile_definitions (teec PRIVATE -DCFG_TEE_BENCHMARK) +if(CFG_TEE_BENCHMARK) + target_compile_definitions(teec PRIVATE -DCFG_TEE_BENCHMARK) endif() ################################################################################ @@ -65,7 +65,7 @@ endif() ################################################################################ target_include_directories(teec PUBLIC include) -target_link_libraries (teec +target_link_libraries(teec PUBLIC ${CMAKE_THREAD_LIBS_INIT} # this is pthreads PRIVATE optee-client-headers) @@ -74,5 +74,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 LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" +install(TARGETS teec LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") diff --git a/public/CMakeLists.txt b/public/CMakeLists.txt index 72b078a8..59f31990 100644 --- a/public/CMakeLists.txt +++ b/public/CMakeLists.txt @@ -1,4 +1,4 @@ -project (optee-client-headers C) +project(optee-client-headers C) ################################################################################ # Header files to be exported @@ -22,4 +22,4 @@ target_include_directories( ################################################################################ # Install targets ################################################################################ -install (FILES ${INSTALL_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +install(FILES ${INSTALL_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) diff --git a/tee-supplicant/CMakeLists.txt b/tee-supplicant/CMakeLists.txt index 57a3326d..7259d62f 100644 --- a/tee-supplicant/CMakeLists.txt +++ b/tee-supplicant/CMakeLists.txt @@ -1,30 +1,30 @@ -project (tee-supplicant C) +project(tee-supplicant C) ################################################################################ # Configuration flags always included ################################################################################ -option (CFG_TA_TEST_PATH "Enable tee-supplicant to load from test/debug path" OFF) -option (RPMB_EMU "Enable tee-supplicant to emulate RPMB" ON) -option (CFG_TA_GPROF_SUPPORT "Enable tee-supplicant support for TAs instrumented with gprof" ON) -option (CFG_FTRACE_SUPPORT "Enable tee-supplicant support for TAs instrumented with ftrace" ON) -option (CFG_TEE_SUPP_PLUGINS "Enable tee-supplicant plugin support" ON) +option(CFG_TA_TEST_PATH "Enable tee-supplicant to load from test/debug path" OFF) +option(RPMB_EMU "Enable tee-supplicant to emulate RPMB" ON) +option(CFG_TA_GPROF_SUPPORT "Enable tee-supplicant support for TAs instrumented with gprof" ON) +option(CFG_FTRACE_SUPPORT "Enable tee-supplicant support for TAs instrumented with ftrace" ON) +option(CFG_TEE_SUPP_PLUGINS "Enable tee-supplicant plugin support" ON) -set (CFG_TEE_SUPP_LOG_LEVEL "1" CACHE STRING "tee-supplicant log level") +set(CFG_TEE_SUPP_LOG_LEVEL "1" CACHE STRING "tee-supplicant log level") # FIXME: Question is, is this really needed? Should just use defaults from # GNUInstallDirs? -set (CFG_TEE_CLIENT_LOAD_PATH "/lib" CACHE STRING "Colon-separated list of paths where to look for TAs (see also --ta-dir)") -set (CFG_TEE_FS_PARENT_PATH "/data/tee" CACHE STRING "Location of TEE filesystem (secure storage)") +set(CFG_TEE_CLIENT_LOAD_PATH "/lib" CACHE STRING "Colon-separated list of paths where to look for TAs (see also --ta-dir)") +set(CFG_TEE_FS_PARENT_PATH "/data/tee" CACHE STRING "Location of TEE filesystem (secure storage)") # FIXME: Why do we have if defined(CFG_GP_SOCKETS) && CFG_GP_SOCKETS == 1 in the c-file? -set (CFG_GP_SOCKETS "1" CACHE STRING "Enable GlobalPlatform Socket API support") -set (CFG_TEE_PLUGIN_LOAD_PATH "/usr/lib/tee-supplicant/plugins/" CACHE STRING "tee-supplicant's plugins path") +set(CFG_GP_SOCKETS "1" CACHE STRING "Enable GlobalPlatform Socket API support") +set(CFG_TEE_PLUGIN_LOAD_PATH "/usr/lib/tee-supplicant/plugins/" CACHE STRING "tee-supplicant's plugins path") -if (CFG_TEE_SUPP_PLUGINS) - set (CMAKE_INSTALL_RPATH "${CFG_TEE_PLUGIN_LOAD_PATH}") +if(CFG_TEE_SUPP_PLUGINS) + set(CMAKE_INSTALL_RPATH "${CFG_TEE_PLUGIN_LOAD_PATH}") endif() ################################################################################ # Source files ################################################################################ -set (SRC +set(SRC src/handle.c src/hmac_sha2.c src/rpmb.c @@ -34,27 +34,27 @@ set (SRC src/teec_ta_load.c ) -if (CFG_GP_SOCKETS) - set (SRC ${SRC} src/tee_socket.c) +if(CFG_GP_SOCKETS) + set(SRC ${SRC} src/tee_socket.c) endif() -if (CFG_TA_GPROF_SUPPORT OR CFG_FTRACE_SUPPORT) - set (SRC ${SRC} src/prof.c) +if(CFG_TA_GPROF_SUPPORT OR CFG_FTRACE_SUPPORT) + set(SRC ${SRC} src/prof.c) endif() -if (CFG_TEE_SUPP_PLUGINS) - set (SRC ${SRC} src/plugin.c) +if(CFG_TEE_SUPP_PLUGINS) + set(SRC ${SRC} src/plugin.c) endif() ################################################################################ # Built binary ################################################################################ -add_executable (${PROJECT_NAME} ${SRC}) +add_executable(${PROJECT_NAME} ${SRC}) ################################################################################ # Flags always set ################################################################################ -target_compile_definitions (${PROJECT_NAME} +target_compile_definitions(${PROJECT_NAME} PRIVATE -DDEBUGLEVEL_${CFG_TEE_SUPP_LOG_LEVEL} PRIVATE -DTEEC_LOAD_PATH="${CFG_TEE_CLIENT_LOAD_PATH}" PRIVATE -DTEE_FS_PARENT_PATH="${CFG_TEE_FS_PARENT_PATH}" @@ -64,33 +64,33 @@ target_compile_definitions (${PROJECT_NAME} ################################################################################ # Optional flags ################################################################################ -if (CFG_GP_SOCKETS) - target_compile_definitions (${PROJECT_NAME} +if(CFG_GP_SOCKETS) + target_compile_definitions(${PROJECT_NAME} PRIVATE -DCFG_GP_SOCKETS=${CFG_GP_SOCKETS}) endif() -if (CFG_TA_TEST_PATH) - target_compile_definitions (${PROJECT_NAME} +if(CFG_TA_TEST_PATH) + target_compile_definitions(${PROJECT_NAME} PRIVATE -DCFG_TA_TEST_PATH=${CFG_TA_TEST_PATH}) endif() -if (RPMB_EMU) - target_compile_definitions (${PROJECT_NAME} +if(RPMB_EMU) + target_compile_definitions(${PROJECT_NAME} PRIVATE -DRPMB_EMU=1) endif() -if (CFG_TA_GPROF_SUPPORT) - target_compile_definitions (${PROJECT_NAME} +if(CFG_TA_GPROF_SUPPORT) + target_compile_definitions(${PROJECT_NAME} PRIVATE -DCFG_TA_GPROF_SUPPORT) endif() -if (CFG_FTRACE_SUPPORT) - target_compile_definitions (${PROJECT_NAME} +if(CFG_FTRACE_SUPPORT) + target_compile_definitions(${PROJECT_NAME} PRIVATE -DCFG_FTRACE_SUPPORT) endif() -if (CFG_TEE_SUPP_PLUGINS) - target_compile_definitions (${PROJECT_NAME} +if(CFG_TEE_SUPP_PLUGINS) + target_compile_definitions(${PROJECT_NAME} PRIVATE -DTEE_SUPP_PLUGINS PRIVATE -DTEE_PLUGIN_LOAD_PATH="${CFG_TEE_PLUGIN_LOAD_PATH}" ) @@ -101,13 +101,13 @@ endif() ################################################################################ target_include_directories(${PROJECT_NAME} PRIVATE src) -target_link_libraries (${PROJECT_NAME} +target_link_libraries(${PROJECT_NAME} PRIVATE teec PRIVATE optee-client-headers ) -if (CFG_TEE_SUPP_PLUGINS) - target_link_libraries (${PROJECT_NAME} +if(CFG_TEE_SUPP_PLUGINS) + target_link_libraries(${PROJECT_NAME} PRIVATE dl ) endif() @@ -115,4 +115,4 @@ endif() ################################################################################ # Install targets ################################################################################ -install (TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR}) +install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR}) From 3ac968ee7c927271e83ea3a4247839649202ab5e Mon Sep 17 00:00:00 2001 From: Eero Aaltonen Date: Thu, 10 Aug 2023 15:37:40 +0300 Subject: [PATCH 2/5] Makefile, cmake: move teec related headers The optee-client-headers interface library was added back in commit e0a12e2322ae02e957910f29948bd19455bf9cfa "cmake: Initial CMake support" , but to a directory named "public". Improve the consistency of the Cmake build by moving the headers under the associated libteec include directory. Signed-off-by: Eero Aaltonen Acked-by: Jerome Forissier Acked-by: Etienne Carriere --- Android.mk | 7 +++--- CMakeLists.txt | 1 - Makefile | 2 +- libckteec/Makefile | 2 +- libseteec/Makefile | 2 +- libteec/CMakeLists.txt | 11 ++++++-- libteec/Makefile | 2 +- {public => libteec/include}/tee_bench.h | 0 {public => libteec/include}/tee_client_api.h | 0 .../include}/tee_client_api_extensions.h | 0 .../include}/tee_plugin_method.h | 0 {public => libteec/include}/teec_trace.h | 0 libteec/{include => src}/linux/tee.h | 0 libteec/{include => src}/teec_benchmark.h | 0 public/CMakeLists.txt | 25 ------------------- tee-supplicant/CMakeLists.txt | 1 - tee-supplicant/Makefile | 2 +- tee-supplicant/tee_supplicant_android.mk | 2 +- 18 files changed, 18 insertions(+), 39 deletions(-) rename {public => libteec/include}/tee_bench.h (100%) rename {public => libteec/include}/tee_client_api.h (100%) rename {public => libteec/include}/tee_client_api_extensions.h (100%) rename {public => libteec/include}/tee_plugin_method.h (100%) rename {public => libteec/include}/teec_trace.h (100%) rename libteec/{include => src}/linux/tee.h (100%) rename libteec/{include => src}/teec_benchmark.h (100%) delete mode 100644 public/CMakeLists.txt diff --git a/Android.mk b/Android.mk index ca08a807..08e72e82 100644 --- a/Android.mk +++ b/Android.mk @@ -49,8 +49,7 @@ LOCAL_CFLAGS += -DCFG_TEE_BENCHMARK LOCAL_SRC_FILES += teec_benchmark.c endif -LOCAL_C_INCLUDES := $(LOCAL_PATH)/public \ - $(LOCAL_PATH)/libteec/include \ +LOCAL_C_INCLUDES := $(LOCAL_PATH)/libteec/include LOCAL_PRELINK_MODULE := false LOCAL_MODULE := libteec @@ -62,7 +61,7 @@ LOCAL_VENDOR_MODULE := true LOCAL_MULTILIB := both LOCAL_MODULE_TARGET_ARCH := arm arm64 -LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/public +LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libteec/include include $(BUILD_SHARED_LIBRARY) @@ -82,7 +81,7 @@ LOCAL_SRC_FILES := libckteec/src/pkcs11_api.c \ libckteec/src/serializer.c \ libckteec/src/serialize_ck.c -LOCAL_C_INCLUDES := $(LOCAL_PATH)/public \ +LOCAL_C_INCLUDES := $(LOCAL_PATH)/libteec/include \ $(LOCAL_PATH)/libckteec/include LOCAL_SHARED_LIBRARIES := libteec diff --git a/CMakeLists.txt b/CMakeLists.txt index a198eb94..83107f49 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,7 +40,6 @@ endif(CCACHE_FOUND) add_subdirectory(libteec) add_subdirectory(tee-supplicant) -add_subdirectory(public) add_subdirectory(libckteec) if(WITH_TEEACL) find_package(PkgConfig REQUIRED) diff --git a/Makefile b/Makefile index b156f42a..0d5a500a 100644 --- a/Makefile +++ b/Makefile @@ -160,7 +160,7 @@ copy_export: build cp -d ${O}/libteec/libteec.so* $(DESTDIR)$(libdir) cp -d ${O}/libteec/libteec.a $(DESTDIR)$(libdir) cp ${O}/tee-supplicant/tee-supplicant $(DESTDIR)$(sbindir) - cp public/*.h $(DESTDIR)$(includedir) + cp libteec/include/*.h $(DESTDIR)$(includedir) cp libckteec/include/*.h $(DESTDIR)$(includedir) cp -d ${O}/libckteec/libckteec.so* $(DESTDIR)$(libdir) cp -d ${O}/libckteec/libckteec.a $(DESTDIR)$(libdir) diff --git a/libckteec/Makefile b/libckteec/Makefile index 859ce3ce..de7e3309 100644 --- a/libckteec/Makefile +++ b/libckteec/Makefile @@ -31,7 +31,7 @@ LIBCKTEEC_SRCS += serializer.c LIBCKTEEC_SRCS += serialize_ck.c LIBCKTEEC_INCLUDES = ${CURDIR}/include -LIBCKTEEC_INCLUDES += ${CURDIR}/../public +LIBCKTEEC_INCLUDES += ${CURDIR}/../libteec/include LIBCKTEEC_CFLAGS := $(addprefix -I, $(LIBCKTEEC_INCLUDES)) \ $(CFLAGS) -D_GNU_SOURCE -fPIC diff --git a/libseteec/Makefile b/libseteec/Makefile index 8384d5b1..ce8b2176 100644 --- a/libseteec/Makefile +++ b/libseteec/Makefile @@ -24,7 +24,7 @@ LIBSETEEC_SRC_DIR := src LIBSETEEC_SRCS = se.c LIBSETEEC_INCLUDES = ${CURDIR}/include -LIBSETEEC_INCLUDES += ${CURDIR}/../public +LIBSETEEC_INCLUDES += ${CURDIR}/../libteec/include LIBSETEEC_CFLAGS := $(addprefix -I, $(LIBSETEEC_INCLUDES)) \ $(CFLAGS) -D_GNU_SOURCE -fPIC diff --git a/libteec/CMakeLists.txt b/libteec/CMakeLists.txt index fb4073d3..d730edfc 100644 --- a/libteec/CMakeLists.txt +++ b/libteec/CMakeLists.txt @@ -63,11 +63,14 @@ endif() ################################################################################ # Public and private header and library dependencies ################################################################################ -target_include_directories(teec PUBLIC include) +target_include_directories(teec + PUBLIC include + PRIVATE src +) target_link_libraries(teec PUBLIC ${CMAKE_THREAD_LIBS_INIT} # this is pthreads - PRIVATE optee-client-headers) +) ################################################################################ # Install targets @@ -76,3 +79,7 @@ target_link_libraries(teec # FIXME: Should we change this to /usr/local/lib? install(TARGETS teec LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") + +install(DIRECTORY include + DESTINATION ${CMAKE_INSTALL_PREFIX} +) diff --git a/libteec/Makefile b/libteec/Makefile index 3b279ab1..41a21bb6 100644 --- a/libteec/Makefile +++ b/libteec/Makefile @@ -28,7 +28,7 @@ TEEC_OBJ_DIR := $(OUT_DIR) TEEC_OBJS := $(patsubst %.c,$(TEEC_OBJ_DIR)/%.o, $(TEEC_SRCS)) TEEC_INCLUDES := \ ${CURDIR}/include \ - ${CURDIR}/../public \ + ${CURDIR}/src TEEC_CFLAGS := $(addprefix -I, $(TEEC_INCLUDES)) $(CFLAGS) -D_GNU_SOURCE \ -DDEBUGLEVEL_$(CFG_TEE_CLIENT_LOG_LEVEL) \ diff --git a/public/tee_bench.h b/libteec/include/tee_bench.h similarity index 100% rename from public/tee_bench.h rename to libteec/include/tee_bench.h diff --git a/public/tee_client_api.h b/libteec/include/tee_client_api.h similarity index 100% rename from public/tee_client_api.h rename to libteec/include/tee_client_api.h diff --git a/public/tee_client_api_extensions.h b/libteec/include/tee_client_api_extensions.h similarity index 100% rename from public/tee_client_api_extensions.h rename to libteec/include/tee_client_api_extensions.h diff --git a/public/tee_plugin_method.h b/libteec/include/tee_plugin_method.h similarity index 100% rename from public/tee_plugin_method.h rename to libteec/include/tee_plugin_method.h diff --git a/public/teec_trace.h b/libteec/include/teec_trace.h similarity index 100% rename from public/teec_trace.h rename to libteec/include/teec_trace.h diff --git a/libteec/include/linux/tee.h b/libteec/src/linux/tee.h similarity index 100% rename from libteec/include/linux/tee.h rename to libteec/src/linux/tee.h diff --git a/libteec/include/teec_benchmark.h b/libteec/src/teec_benchmark.h similarity index 100% rename from libteec/include/teec_benchmark.h rename to libteec/src/teec_benchmark.h diff --git a/public/CMakeLists.txt b/public/CMakeLists.txt deleted file mode 100644 index 59f31990..00000000 --- a/public/CMakeLists.txt +++ /dev/null @@ -1,25 +0,0 @@ -project(optee-client-headers C) - -################################################################################ -# Header files to be exported -################################################################################ -FILE(GLOB INSTALL_HEADERS "*.h") - -################################################################################ -# Built library -################################################################################ -add_library(${PROJECT_NAME} INTERFACE) - -################################################################################ -# Public and private header and library dependencies -################################################################################ -target_include_directories( - teec - PUBLIC $ - $ -) - -################################################################################ -# Install targets -################################################################################ -install(FILES ${INSTALL_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) diff --git a/tee-supplicant/CMakeLists.txt b/tee-supplicant/CMakeLists.txt index 7259d62f..b98fe2e6 100644 --- a/tee-supplicant/CMakeLists.txt +++ b/tee-supplicant/CMakeLists.txt @@ -103,7 +103,6 @@ target_include_directories(${PROJECT_NAME} PRIVATE src) target_link_libraries(${PROJECT_NAME} PRIVATE teec - PRIVATE optee-client-headers ) if(CFG_TEE_SUPP_PLUGINS) diff --git a/tee-supplicant/Makefile b/tee-supplicant/Makefile index b862a7ef..6f59c8c9 100644 --- a/tee-supplicant/Makefile +++ b/tee-supplicant/Makefile @@ -40,7 +40,7 @@ TEES_OBJ_DIR := $(OUT_DIR) TEES_OBJS := $(patsubst %.c,$(TEES_OBJ_DIR)/%.o, $(TEES_SRCS)) TEES_INCLUDES := ${CURDIR}/../libteec/include \ ${CURDIR}/src \ - ${CURDIR}/../public \ + ${CURDIR}/../libteec/include \ TEES_CFLAGS := $(addprefix -I, $(TEES_INCLUDES)) $(CFLAGS) \ -DDEBUGLEVEL_$(CFG_TEE_SUPP_LOG_LEVEL) \ diff --git a/tee-supplicant/tee_supplicant_android.mk b/tee-supplicant/tee_supplicant_android.mk index 49bc388a..04eee2a4 100644 --- a/tee-supplicant/tee_supplicant_android.mk +++ b/tee-supplicant/tee_supplicant_android.mk @@ -62,7 +62,7 @@ ifeq ($(CFG_FTRACE_SUPPORT),y) LOCAL_CFLAGS += -DCFG_FTRACE_SUPPORT endif -LOCAL_C_INCLUDES := $(LOCAL_PATH)/../public \ +LOCAL_C_INCLUDES := $(LOCAL_PATH)/../libteec/include \ $(LOCAL_PATH)/../libteec/include \ $(LOCAL_PATH)/src From 46831ac8eb67d4ab922c8844bb0b7b35841b8ee3 Mon Sep 17 00:00:00 2001 From: Eero Aaltonen Date: Wed, 23 Aug 2023 17:05:19 +0300 Subject: [PATCH 3/5] pkgconfig file: remove extra comments Remove extra comments about CMake build. Before the comments were included in the generated .pc file. Based on a short sample, most projects pkgconfig files don't start with any extra comments. Signed-off-by: Eero Aaltonen Acked-by: Jerome Forissier Acked-by: Etienne Carriere --- libteec/libteec.pc.in | 7 ------- 1 file changed, 7 deletions(-) diff --git a/libteec/libteec.pc.in b/libteec/libteec.pc.in index f6fc5302..e91e6909 100644 --- a/libteec/libteec.pc.in +++ b/libteec/libteec.pc.in @@ -1,10 +1,3 @@ -# this template is filled-in by CMake `configure_file(... @ONLY)` -# the `@....@` are filled in by CMake configure_file(), -# from variables set in your CMakeLists.txt or by CMake itself -# -# Good tutoral for understanding .pc files: -# https://people.freedesktop.org/~dbn/pkg-config-guide.html - prefix="@CMAKE_INSTALL_PREFIX@" exec_prefix="${prefix}" libdir="${prefix}/lib" From 6178477728ebea18f1ef37f3534d06a34840fd3b Mon Sep 17 00:00:00 2001 From: Eero Aaltonen Date: Wed, 23 Aug 2023 17:08:43 +0300 Subject: [PATCH 4/5] cmake: pkgconfig file: install the file Make it so that pkgconfig file is actually installed to INSTALL_LIBDIR. Signed-off-by: Eero Aaltonen Acked-by: Jerome Forissier Acked-by: Etienne Carriere --- libteec/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libteec/CMakeLists.txt b/libteec/CMakeLists.txt index d730edfc..0c73ebae 100644 --- a/libteec/CMakeLists.txt +++ b/libteec/CMakeLists.txt @@ -83,3 +83,7 @@ install(TARGETS teec LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" install(DIRECTORY include DESTINATION ${CMAKE_INSTALL_PREFIX} ) + +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libteec.pc" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" +) From acb0885c117e73cb6c5c9b1dd9054cb3f93507ee Mon Sep 17 00:00:00 2001 From: Jens Wiklander Date: Thu, 28 Sep 2023 21:21:12 +0200 Subject: [PATCH 5/5] teec: use multiple of page size for page aligned buffers When allocating a page aligned buffer, round the size up the next multiple of page size. With this we can guarantee that a part of that page isn't registered already. Signed-off-by: Jens Wiklander Reviewed-by: Joakim Bech --- libteec/src/tee_client_api.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libteec/src/tee_client_api.c b/libteec/src/tee_client_api.c index d8cc4b5b..6d398ab9 100644 --- a/libteec/src/tee_client_api.c +++ b/libteec/src/tee_client_api.c @@ -79,8 +79,10 @@ static void teec_mutex_unlock(pthread_mutex_t *mu) static void *teec_paged_aligned_alloc(size_t sz) { void *p = NULL; + size_t page_sz = sysconf(_SC_PAGESIZE); + size_t aligned_sz = ((sz + page_sz - 1) / page_sz) * page_sz; - if (!posix_memalign(&p, sysconf(_SC_PAGESIZE), sz)) + if (!posix_memalign(&p, page_sz, aligned_sz)) return p; return NULL;