diff options
Diffstat (limited to 'meta-networking/recipes-protocols/vsomeip/vsomeip')
5 files changed, 331 insertions, 0 deletions
diff --git a/meta-networking/recipes-protocols/vsomeip/vsomeip/0001-Fix-pkgconfig-dir-for-multilib.patch b/meta-networking/recipes-protocols/vsomeip/vsomeip/0001-Fix-pkgconfig-dir-for-multilib.patch new file mode 100644 index 0000000000..0ddcb642bc --- /dev/null +++ b/meta-networking/recipes-protocols/vsomeip/vsomeip/0001-Fix-pkgconfig-dir-for-multilib.patch @@ -0,0 +1,28 @@ +From 2f931baf290477b586309189445bf87e3bc5d5ba Mon Sep 17 00:00:00 2001 +From: Yi Zhao <yi.zhao@windriver.com> +Date: Wed, 2 Mar 2022 14:51:13 +0800 +Subject: [PATCH] Fix pkgconfig dir for multilib + +Upstream-Status: Pending + +Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ab399a69..beae6eaf 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -637,7 +637,7 @@ endif() + # create pkg-config file + if(NOT WIN32) + configure_file(${VSOMEIP_NAME}.pc.in ${PROJECT_BINARY_DIR}/${VSOMEIP_NAME}.pc @ONLY) +- install(FILES ${PROJECT_BINARY_DIR}/${VSOMEIP_NAME}.pc DESTINATION lib/pkgconfig) ++ install(FILES ${PROJECT_BINARY_DIR}/${VSOMEIP_NAME}.pc DESTINATION ${INSTALL_LIB_DIR}/pkgconfig) + endif() + + ############################################################################## +-- +2.25.1 + diff --git a/meta-networking/recipes-protocols/vsomeip/vsomeip/0002-Install-example-configuration-files-to-etc-vsomeip.patch b/meta-networking/recipes-protocols/vsomeip/vsomeip/0002-Install-example-configuration-files-to-etc-vsomeip.patch new file mode 100644 index 0000000000..bdaf343606 --- /dev/null +++ b/meta-networking/recipes-protocols/vsomeip/vsomeip/0002-Install-example-configuration-files-to-etc-vsomeip.patch @@ -0,0 +1,28 @@ +From ebaa3206ee125741314272cddafa04fa71bd2d1e Mon Sep 17 00:00:00 2001 +From: Yi Zhao <yi.zhao@windriver.com> +Date: Wed, 9 Mar 2022 11:48:44 +0800 +Subject: [PATCH] Install example configuration files to /etc/vsomeip + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index beae6eaf..d791c12e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -536,7 +536,7 @@ install(FILES ${PROJECT_BINARY_DIR}/vsomeip.pc DESTINATION lib/pkgconfig) + endif () + + install ( +- FILES ${EXAMPLE_CONFIG_FILES} DESTINATION etc/vsomeip COMPONENT config ++ FILES ${EXAMPLE_CONFIG_FILES} DESTINATION ${DEFAULT_CONFIGURATION_FOLDER} COMPONENT config + ) + + # Add all targets to the build-tree export set +-- +2.25.1 + diff --git a/meta-networking/recipes-protocols/vsomeip/vsomeip/0003-Do-not-build-external-gtest.patch b/meta-networking/recipes-protocols/vsomeip/vsomeip/0003-Do-not-build-external-gtest.patch new file mode 100644 index 0000000000..09dab9a8b0 --- /dev/null +++ b/meta-networking/recipes-protocols/vsomeip/vsomeip/0003-Do-not-build-external-gtest.patch @@ -0,0 +1,187 @@ +From b1bf398015bc090020459954e5cd1ec3b51b8ac3 Mon Sep 17 00:00:00 2001 +From: Yi Zhao <yi.zhao@windriver.com> +Date: Tue, 11 Jul 2023 16:53:46 +0800 +Subject: [PATCH] Do not build external gtest + +We don't need to build external gtest since we already depend on +googletest. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +--- + CMakeLists.txt | 11 ---- + test/CMakeLists.txt | 22 +------ + test/network_tests/CMakeLists.txt | 99 ------------------------------- + 3 files changed, 3 insertions(+), 129 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d791c12e..f1bcba27 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -18,17 +18,6 @@ set (VSOMEIP_VERSION ${VSOMEIP_MAJOR_VERSION}.${VSOMEIP_MINOR_VERSION}.${VSOMEIP + set (PACKAGE_VERSION ${VSOMEIP_VERSION}) # Used in documentation/doxygen.in + set (CMAKE_VERBOSE_MAKEFILE off) + +-if (NOT GTEST_ROOT) +- if (DEFINED ENV{GTEST_ROOT}) +- set(GTEST_ROOT $ENV{GTEST_ROOT}) +- else() +- include(FetchContent) +- FetchContent_Declare(googletest GIT_REPOSITORY https://github.com/google/googletest.git GIT_TAG v1.14.0) +- FetchContent_Populate(googletest) +- set(GTEST_ROOT ${googletest_SOURCE_DIR}) +- endif() +-endif() +- + ################################################################################################### + # see http://www.cmake.org/Wiki/CMake/Tutorials/How_to_create_a_ProjectConfig.cmake_file + ################################################################################################### +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index f66ac5d3..6f09bf40 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -17,27 +17,11 @@ find_package(benchmark) + # remove export symbols from the cxx flags + string(REPLACE "${EXPORTSYMBOLS}" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + +-# check for set environment variable +-if(${GTEST_ROOT} STREQUAL "n/a") +- message(STATUS "GTEST_ROOT is not defined. For building the tests the variable +- GTEST_ROOT has to be defined. Tests can not be built.") +- # early exit +- return() # test can not be build -> make commands build_tests and check are not available +-else() +- message(STATUS "GTEST_ROOT is set. gtest root path set to ${GTEST_ROOT}") ++find_package(GTest) ++if (NOT GTest_FOUND) ++ message(WARNING "GTest is not found. Tests can not be built.") + endif() + +-# build google test as static library (always) -> therefore deactivate BUILD_SHARED_LIBS in case it is active +-set(BUILD_SHARED_LIBS_AUTOMATIC_OFF 0) +-if ("${BUILD_SHARED_LIBS}" STREQUAL "ON") +- set(BUILD_SHARED_LIBS OFF) +- set(BUILD_SHARED_LIBS_AUTOMATIC_OFF 1) +-endif() +-add_subdirectory(${GTEST_ROOT} ${CMAKE_CURRENT_BINARY_DIR}/gtest EXCLUDE_FROM_ALL) +-if ("${BUILD_SHARED_LIBS_AUTOMATIC_OFF}" STREQUAL "1") +- set(BUILD_SHARED_LIBS ON) +- set(BUILD_SHARED_LIBS_AUTOMATIC_OFF 0) +-endif() + + ############################################################################## + # build tests +diff --git a/test/network_tests/CMakeLists.txt b/test/network_tests/CMakeLists.txt +index 883cc5cf..9a2a4f5e 100644 +--- a/test/network_tests/CMakeLists.txt ++++ b/test/network_tests/CMakeLists.txt +@@ -4116,105 +4116,6 @@ if(NOT ${TESTS_BAT}) + + endif() + +-############################################################################## +-# Add for every test a dependency to gtest +-############################################################################## +- +-if(NOT ${TESTS_BAT}) +- add_dependencies(${TEST_CONFIGURATION} gtest) +- add_dependencies(${TEST_APPLICATION} gtest) +- add_dependencies(${TEST_APPLICATION_SINGLE_PROCESS_NAME} gtest) +- add_dependencies(${TEST_APPLICATION_AVAILABILITY_NAME} gtest) +- add_dependencies(${TEST_MAGIC_COOKIES_CLIENT} gtest) +- add_dependencies(${TEST_MAGIC_COOKIES_SERVICE} gtest) +- add_dependencies(${TEST_HEADER_FACTORY} gtest) +- add_dependencies(${TEST_HEADER_FACTORY_CLIENT} gtest) +- add_dependencies(${TEST_HEADER_FACTORY_SERVICE} gtest) +- add_dependencies(${TEST_LOCAL_ROUTING_SERVICE} gtest) +- add_dependencies(${TEST_LOCAL_ROUTING_CLIENT} gtest) +- add_dependencies(${TEST_EXTERNAL_LOCAL_ROUTING_SERVICE} gtest) +- add_dependencies(${TEST_PAYLOAD_SERVICE} gtest) +- add_dependencies(${TEST_PAYLOAD_CLIENT} gtest) +- add_dependencies(${TEST_BIG_PAYLOAD_SERVICE} gtest) +- add_dependencies(${TEST_BIG_PAYLOAD_CLIENT} gtest) +- add_dependencies(${TEST_CLIENT_ID_SERVICE} gtest) +- add_dependencies(${TEST_CLIENT_ID_UTILITY} gtest) +- add_dependencies(${TEST_DEBOUNCE_CLIENT} gtest) +- add_dependencies(${TEST_DEBOUNCE_SERVICE} gtest) +- add_dependencies(${TEST_DEBOUNCE_FILTER_CLIENT} gtest) +- add_dependencies(${TEST_DEBOUNCE_FILTER_SERVICE} gtest) +- add_dependencies(${TEST_DEBOUNCE_CALLBACK_CLIENT} gtest) +- add_dependencies(${TEST_DEBOUNCE_CALLBACK_SERVICE} gtest) +- add_dependencies(${TEST_DEBOUNCE_FREQUENCY_CLIENT} gtest) +- add_dependencies(${TEST_DEBOUNCE_FREQUENCY_SERVICE} gtest) +- add_dependencies(${TEST_SUBSCRIBE_NOTIFY_SERVICE} gtest) +- add_dependencies(${TEST_SUBSCRIBE_NOTIFY_ONE_EVENT_TWO_EVENTGROUPS_SERVICE} gtest) +- add_dependencies(${TEST_SUBSCRIBE_NOTIFY_ONE_EVENT_TWO_EVENTGROUPS_CLIENT} gtest) +- add_dependencies(${TEST_SUBSCRIBE_NOTIFY_ONE_SERVICE} gtest) +- add_dependencies(${TEST_CPU_LOAD_SERVICE} gtest) +- add_dependencies(${TEST_CPU_LOAD_CLIENT} gtest) +- add_dependencies(${TEST_INITIAL_EVENT_SERVICE} gtest) +- add_dependencies(${TEST_INITIAL_EVENT_CLIENT} gtest) +- add_dependencies(${TEST_INITIAL_EVENT_AVAILABILITY_CHECKER} gtest) +- add_dependencies(${TEST_INITIAL_EVENT_STOP_SERVICE} gtest) +- add_dependencies(${TEST_OFFER_SERVICE} gtest) +- add_dependencies(${TEST_OFFER_CLIENT} gtest) +- add_dependencies(${TEST_OFFER_SERVICE_EXTERNAL} gtest) +- add_dependencies(${TEST_OFFER_EXTERNAL_SD_MESSAGE_SENDER} gtest) +- add_dependencies(${TEST_OFFERED_SERVICES_INFO_CLIENT} gtest) +- add_dependencies(${TEST_OFFERED_SERVICES_INFO_SERVICE} gtest) +- add_dependencies(${TEST_PENDING_SUBSCRIPTION_SERVICE} gtest) +- add_dependencies(${TEST_PENDING_SUBSCRIPTION_CLIENT} gtest) +- add_dependencies(${TEST_MALICIOUS_DATA_SERVICE} gtest) +- add_dependencies(${TEST_MALICIOUS_DATA_CLIENT} gtest) +- if (${TEST_SECURITY}) +- add_dependencies(${TEST_SECURITY_SERVICE} gtest) +- add_dependencies(${TEST_SECURITY_CLIENT} gtest) +- endif() +- add_dependencies(${TEST_E2E_SERVICE} gtest) +- add_dependencies(${TEST_E2E_CLIENT} gtest) +- if (${TEST_E2E_PROFILE_04}) +- add_dependencies(${TEST_E2E_PROFILE_04_SERVICE} gtest) +- add_dependencies(${TEST_E2E_PROFILE_04_CLIENT} gtest) +- endif() +- if (${TEST_E2E_PROFILE_07}) +- add_dependencies(${TEST_E2E_PROFILE_07_SERVICE} gtest) +- add_dependencies(${TEST_E2E_PROFILE_07_CLIENT} gtest) +- endif() +- add_dependencies(${TEST_EVENT_SERVICE} gtest) +- add_dependencies(${TEST_EVENT_CLIENT} gtest) +- if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "QNX") +- add_dependencies(${TEST_NPDU_SERVICE_ONE} gtest) +- add_dependencies(${TEST_NPDU_SERVICE_TWO} gtest) +- add_dependencies(${TEST_NPDU_SERVICE_THREE} gtest) +- add_dependencies(${TEST_NPDU_SERVICE_FOUR} gtest) +- add_dependencies(${TEST_NPDU_CLIENT_ONE} gtest) +- add_dependencies(${TEST_NPDU_CLIENT_TWO} gtest) +- add_dependencies(${TEST_NPDU_CLIENT_THREE} gtest) +- add_dependencies(${TEST_NPDU_CLIENT_FOUR} gtest) +- add_dependencies(${TEST_NPDU_DAEMON_CLIENT} gtest) +- add_dependencies(${TEST_NPDU_DAEMON_SERVICE} gtest) +- endif() +- add_dependencies(${TEST_SOMEIPTP_CLIENT} gtest) +- add_dependencies(${TEST_SOMEIPTP_SERVICE} gtest) +- if(${TEST_SECOND_ADDRESS}) +- add_dependencies(${TEST_SECOND_ADDRESS_CLIENT} gtest) +- add_dependencies(${TEST_SECOND_ADDRESS_SERVICE} gtest) +- endif() +- add_dependencies(${TEST_SUSPEND_RESUME_CLIENT} gtest) +- add_dependencies(${TEST_SUSPEND_RESUME_SERVICE} gtest) +-else() +- add_dependencies(${TEST_APPLICATION} gtest) +- add_dependencies(${TEST_HEADER_FACTORY} gtest) +- add_dependencies(${TEST_HEADER_FACTORY_CLIENT} gtest) +- add_dependencies(${TEST_HEADER_FACTORY_SERVICE} gtest) +- add_dependencies(${TEST_PAYLOAD_SERVICE} gtest) +- add_dependencies(${TEST_PAYLOAD_CLIENT} gtest) +- add_dependencies(${TEST_BIG_PAYLOAD_SERVICE} gtest) +- add_dependencies(${TEST_BIG_PAYLOAD_CLIENT} gtest) +- add_dependencies(${TEST_LOCAL_ROUTING_SERVICE} gtest) +- add_dependencies(${TEST_LOCAL_ROUTING_CLIENT} gtest) +-endif() + + ############################################################################## + # Add tests to the target build_network_tests +-- +2.25.1 + diff --git a/meta-networking/recipes-protocols/vsomeip/vsomeip/0004-Do-not-specify-PIE-flag-explicitly.patch b/meta-networking/recipes-protocols/vsomeip/vsomeip/0004-Do-not-specify-PIE-flag-explicitly.patch new file mode 100644 index 0000000000..4bb2318555 --- /dev/null +++ b/meta-networking/recipes-protocols/vsomeip/vsomeip/0004-Do-not-specify-PIE-flag-explicitly.patch @@ -0,0 +1,47 @@ +From ec2d36466c9050ee282ea1c3bb1b5f1f61c96ecb Mon Sep 17 00:00:00 2001 +From: Yi Zhao <yi.zhao@windriver.com> +Date: Mon, 17 Jul 2023 14:33:32 +0800 +Subject: [PATCH] Do not specify PIE flag explicitly + +For nodistro distro, packages are built without PIE because +security_flags.inc is not included by default. But in vsomeip, the PIE +flag is explicitly specified in CMAKE_CXX_FLAGS, which will cause +building with PIE even in nodistro, causing an error when linking the +googletest static library: + +TOPDIR/tmp-glibc/work/cortexa53-oe-linux/vsomeip/3.1.20.3-r0/recipe-sysroot-native/usr/bin/aarch64-oe-linux/../../libexec/aarch64-oe-linux/gcc/aarch64-oe-linux/12.2.0/ld: +TOPDIR/tmp-glibc/work/cortexa53-oe-linux/vsomeip/3.1.20.3-r0/recipe-sysroot/usr/lib/libgtest.a(gtest-all.cc.o)(.text+0x4a90): +unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `_ZSt4cerr@@GLIBCXX_3.4' + +Remove PIE flag from CMAKE_CXX_FLAGS and only enable PIE flag by +including security_flags.inc. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +--- + CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f1bcba27..2653a4df 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -60,12 +60,12 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") + if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + # This is only relevant for GCC and causes warnings on Clang + set(EXPORTSYMBOLS "-Wl,-export-dynamic -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exportmap.gcc") +- set(OS_CXX_FLAGS "${OS_CXX_FLAGS} -pie -Wno-tsan -Wl,-z,relro,-z,now") ++ set(OS_CXX_FLAGS "${OS_CXX_FLAGS} -Wno-tsan -Wl,-z,relro,-z,now") + endif() + + set(NO_DEPRECATED "") + set(OPTIMIZE "") +- set(OS_CXX_FLAGS "${OS_CXX_FLAGS} -D_GLIBCXX_USE_NANOSLEEP -pthread -O -Wall -Wextra -Wformat -Wformat-security -Wconversion -fexceptions -fstrict-aliasing -fstack-protector-strong -fasynchronous-unwind-tables -fno-omit-frame-pointer -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Wpedantic -Werror -fPIE") ++ set(OS_CXX_FLAGS "${OS_CXX_FLAGS} -D_GLIBCXX_USE_NANOSLEEP -pthread -O -Wall -Wextra -Wformat -Wformat-security -Wconversion -fexceptions -fstrict-aliasing -fstack-protector-strong -fasynchronous-unwind-tables -fno-omit-frame-pointer -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Wpedantic") + + # force all use of std::mutex and std::recursive_mutex to use runtime init + # instead of static initialization so mutexes can be hooked to enable PI as needed +-- +2.25.1 + diff --git a/meta-networking/recipes-protocols/vsomeip/vsomeip/0005-test-common-CMakeLists.txt-add-missing-link-with-dlt.patch b/meta-networking/recipes-protocols/vsomeip/vsomeip/0005-test-common-CMakeLists.txt-add-missing-link-with-dlt.patch new file mode 100644 index 0000000000..25d66514f8 --- /dev/null +++ b/meta-networking/recipes-protocols/vsomeip/vsomeip/0005-test-common-CMakeLists.txt-add-missing-link-with-dlt.patch @@ -0,0 +1,41 @@ +From 8676ef287bb25b49668be4336387bdf83a0cae5c Mon Sep 17 00:00:00 2001 +From: Yi Zhao <yi.zhao@windriver.com> +Date: Mon, 1 Jan 2024 17:02:41 +0800 +Subject: [PATCH] test/common/CMakeLists.txt: add missing link with dlt + +The libvsomeip_utilities library uses functions e.g. +dlt_check_library_version/dlt_register_app/dlt_unregister_app which are +provided by dlt therefore add it to linker flags. + +Fixes: +x86_64-poky-linux-ld.lld: error: undefined reference due to --no-allow-shlib-undefined: dlt_check_library_version +>>> referenced by test/common/libvsomeip_utilities.so + +x86_64-poky-linux-ld.lld: error: undefined reference due to --no-allow-shlib-undefined: dlt_register_app +>>> referenced by test/common/libvsomeip_utilities.so + +x86_64-poky-linux-ld.lld: error: undefined reference due to --no-allow-shlib-undefined: dlt_unregister_app +>>> referenced by test/common/libvsomeip_utilities.so + +Upstream-Status: Submitted [https://github.com/COVESA/vsomeip/pull/602] + +Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +--- + test/common/CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/test/common/CMakeLists.txt b/test/common/CMakeLists.txt +index d4d14534..afc8c2d6 100644 +--- a/test/common/CMakeLists.txt ++++ b/test/common/CMakeLists.txt +@@ -27,6 +27,7 @@ TARGET_LINK_LIBRARIES ( + ${Boost_LIBRARIES} + ${DL_LIBRARY} + ${TEST_LINK_LIBRARIES} ++ ${DLT_LIBRARIES} + ) + + # ---------------------------------------------------------------------------- +-- +2.25.1 + |