aboutsummaryrefslogtreecommitdiffstats
path: root/meta-networking/recipes-protocols/vsomeip/vsomeip
diff options
context:
space:
mode:
Diffstat (limited to 'meta-networking/recipes-protocols/vsomeip/vsomeip')
-rw-r--r--meta-networking/recipes-protocols/vsomeip/vsomeip/0001-Fix-pkgconfig-dir-for-multilib.patch28
-rw-r--r--meta-networking/recipes-protocols/vsomeip/vsomeip/0002-Install-example-configuration-files-to-etc-vsomeip.patch28
-rw-r--r--meta-networking/recipes-protocols/vsomeip/vsomeip/0003-Do-not-build-external-gtest.patch187
-rw-r--r--meta-networking/recipes-protocols/vsomeip/vsomeip/0004-Do-not-specify-PIE-flag-explicitly.patch47
-rw-r--r--meta-networking/recipes-protocols/vsomeip/vsomeip/0005-test-common-CMakeLists.txt-add-missing-link-with-dlt.patch41
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
+