From 62043855ad2971dd7bd022eef602f62cc02e2aca Mon Sep 17 00:00:00 2001 From: Mathias Kraus Date: Fri, 10 Nov 2023 19:24:18 +0100 Subject: [PATCH 1/6] iox-#2084 Fix QNX build --- .../container/include/iox/fixed_position_container.hpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/iceoryx_dust/container/include/iox/fixed_position_container.hpp b/iceoryx_dust/container/include/iox/fixed_position_container.hpp index 1b5b458340..45da5de095 100644 --- a/iceoryx_dust/container/include/iox/fixed_position_container.hpp +++ b/iceoryx_dust/container/include/iox/fixed_position_container.hpp @@ -194,9 +194,6 @@ class FixedPositionContainer final friend class FixedPositionContainer; - template - friend class IteratorBase; - /// @brief Construct a const iterator from an iterator // NOLINTJUSTIFICATION conversion from non const iterator to const iterator follows the STL behavior // NOLINTNEXTLINE(hicpp-explicit-conversions) From b64c12eb5d319c909460cf7c87d4e420294d96c2 Mon Sep 17 00:00:00 2001 From: Mathias Kraus Date: Fri, 10 Nov 2023 19:41:54 +0100 Subject: [PATCH 2/6] iox-#2084 Add gcc8.3 to Arch Linux docker image --- tools/ci/docker/archlinux-base-devel | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tools/ci/docker/archlinux-base-devel b/tools/ci/docker/archlinux-base-devel index 8c8f791d96..3951f10bbe 100644 --- a/tools/ci/docker/archlinux-base-devel +++ b/tools/ci/docker/archlinux-base-devel @@ -9,11 +9,15 @@ ARG DEBIAN_FRONTEND=noninteractive # Minimize the number of layers (RUN, COPY and ADD create layers) # https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#minimize-the-number-of-layers # Install additional packages -RUN pacman -Syu --noconfirm \ - clang \ - cmake \ - git \ - ncurses \ +RUN \ + pacman -Syu --noconfirm \ + clang \ + cmake \ + git \ + ncurses \ + && pacman -U --noconfirm \ + https://archive.archlinux.org/packages/g/gcc8-libs/gcc8-libs-8.3.0-4-x86_64.pkg.tar.xz \ + https://archive.archlinux.org/packages/g/gcc8/gcc8-8.3.0-4-x86_64.pkg.tar.xz \ && pacman -Scc --noconfirm \ && useradd iox_roudi_test1 \ && useradd iox_roudi_test2 \ From 37faf0aa8701b1bd33b4a42570e30c84e530006e Mon Sep 17 00:00:00 2001 From: Mathias Kraus Date: Fri, 10 Nov 2023 20:14:12 +0100 Subject: [PATCH 3/6] iox-#2084 Add gcc8.3 CI build --- .cirrus.yaml | 78 +++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 65 insertions(+), 13 deletions(-) diff --git a/.cirrus.yaml b/.cirrus.yaml index 7171c175e6..44fdc2a429 100644 --- a/.cirrus.yaml +++ b/.cirrus.yaml @@ -31,23 +31,39 @@ iox_common_cpu_and_memory_config_for_tests_template: &IOX_COMMON_CPU_AND_MEMORY_ # Build and Test -iox_posix_clean_build_script_template: &IOX_POSIX_CLEAN_BUILD +iox_posix_pre_cmake_config_script_template: &IOX_POSIX_PRE_CMAKE_CONFIG - echo "#### Deleting build and iox-tests-bin dir" - if [[ -d "build" ]]; then rm -rf build; fi - if [[ -d "iox-tests-bin" ]]; then rm -rf iox-tests-vin; fi - echo "#### Running cmake to configure build" - - cmake -Bbuild -Hiceoryx_meta -DBUILD_STRICT=ON -DBINDING_C=ON -DINTROSPECTION=ON -DEXAMPLES=ON -DBUILD_TEST=ON -DCMAKE_INSTALL_PREFIX=build/install + +iox_posix_post_cmake_config_script_template: &IOX_POSIX_POST_CMAKE_CONFIG - echo "#### Running cmake to build with CIRRUS_CPU = " $CIRRUS_CPU - cmake --build build --target install -j $CIRRUS_CPU -iox_posix_clean_build_with_additional_user_template: &IOX_POSIX_CLEAN_BUILD_WITH_ADDITIONAL_USER - - echo "#### Deleting build and iox-tests-bin dir" - - if [[ -d "build" ]]; then rm -rf build; fi - - if [[ -d "iox-tests-bin" ]]; then rm -rf iox-tests-vin; fi - - echo "#### Running cmake to configure build" +iox_posix_cmake_config_strict_with_no_additional_user_script_template: &IOX_POSIX_CMAKE_CONFIG_STRICT_WITH_NO_ADDITIONAL_USER + - cmake -Bbuild -Hiceoryx_meta -DBUILD_STRICT=ON -DBINDING_C=ON -DINTROSPECTION=ON -DEXAMPLES=ON -DBUILD_TEST=ON -DTEST_ADD_USER=OFF -DCMAKE_INSTALL_PREFIX=build/install + +iox_posix_cmake_config_strict_with_additional_user_script_template: &IOX_POSIX_CMAKE_CONFIG_STRICT_WITH_ADDITIONAL_USER - cmake -Bbuild -Hiceoryx_meta -DBUILD_STRICT=ON -DBINDING_C=ON -DINTROSPECTION=ON -DEXAMPLES=ON -DBUILD_TEST=ON -DTEST_ADD_USER=ON -DCMAKE_INSTALL_PREFIX=build/install - - echo "#### Running cmake to build with CIRRUS_CPU = " $CIRRUS_CPU - - cmake --build build --target install -j $CIRRUS_CPU + +iox_posix_cmake_config_no_strict_with_additional_user_script_template: &IOX_POSIX_CMAKE_CONFIG_NO_STRICT_WITH_ADDITIONAL_USER + - cmake -Bbuild -Hiceoryx_meta -DBUILD_STRICT=OFF -DBINDING_C=ON -DINTROSPECTION=ON -DEXAMPLES=ON -DBUILD_TEST=ON -DTEST_ADD_USER=ON -DCMAKE_INSTALL_PREFIX=build/install + +iox_posix_clean_build_strict_with_no_additional_user_script_template: &IOX_POSIX_CLEAN_BUILD_STRICT_WITH_NO_ADDITIONAL_USER + <<: *IOX_POSIX_PRE_CMAKE_CONFIG + <<: *IOX_POSIX_CMAKE_CONFIG_STRICT_WITH_NO_ADDITIONAL_USER + <<: *IOX_POSIX_POST_CMAKE_CONFIG + +iox_posix_clean_build_strict_with_additional_user_template: &IOX_POSIX_CLEAN_BUILD_STRICT_WITH_ADDITIONAL_USER + <<: *IOX_POSIX_PRE_CMAKE_CONFIG + <<: *IOX_POSIX_CMAKE_CONFIG_STRICT_WITH_ADDITIONAL_USER + <<: *IOX_POSIX_POST_CMAKE_CONFIG + +iox_posix_clean_build_no_strict_with_additional_user_allow_warnings_template: &IOX_POSIX_CLEAN_BUILD_NO_STRICT_WITH_ADDITIONAL_USER_ALLOW_WARNING + <<: *IOX_POSIX_PRE_CMAKE_CONFIG + <<: *IOX_POSIX_CMAKE_CONFIG_NO_STRICT_WITH_ADDITIONAL_USER + <<: *IOX_POSIX_POST_CMAKE_CONFIG iox_prepare_test_binaries_for_cache_template: &IOX_PREPARE_TEST_BINARIES_FOR_CACHE - mkdir -p iox-tests-bin @@ -101,7 +117,7 @@ ubuntu_22_04_aarch64_build_task: reupload_on_changes: true fingerprint_key: $CIRRUS_OS_ubuntu_22_04_aarch64_test_binaries_cache build_script: - <<: *IOX_POSIX_CLEAN_BUILD_WITH_ADDITIONAL_USER + <<: *IOX_POSIX_CLEAN_BUILD_STRICT_WITH_ADDITIONAL_USER populate_test_binary_folder_script: <<: *IOX_PREPARE_TEST_BINARIES_FOR_CACHE @@ -118,6 +134,42 @@ ubuntu_22_04_aarch64_test_task: test_script: <<: *IOX_RUN_TESTS +# +# Arch Linux x64 gcc 8.3 aka QNX canary build +# + +arch_linux_x64_gcc_8_3_aka_qnx_canary_build_task: + depends_on: preflight_check + container: + dockerfile: tools/ci/docker/archlinux-base-devel + <<: *IOX_COMMON_CPU_AND_MEMORY_CONFIG_FOR_BUILDS + <<: *IOX_TASK_TIMEOUT + test_binaries_cache: + folder: iox-tests-bin + reupload_on_changes: true + fingerprint_key: $CIRRUS_OS_archlinux_x64_gcc_8_3_aka_qnx_canary_test_binaries_cache + env: + # use GCC 8.3 which corresponds to QCC 8.3 on QNX 7.1 + CC: gcc-8 + CXX: g++-8 + build_script: + <<: *IOX_POSIX_CLEAN_BUILD_NO_STRICT_WITH_ADDITIONAL_USER_ALLOW_WARNING + populate_test_binary_folder_script: + <<: *IOX_PREPARE_TEST_BINARIES_FOR_CACHE + +arch_linux_x64_gcc_8_3_aka_qnx_canary_test_task: + depends_on: arch_linux_x64_gcc_8_3_aka_qnx_canary_build + container: + dockerfile: tools/ci/docker/archlinux-base-devel + <<: *IOX_COMMON_CPU_AND_MEMORY_CONFIG_FOR_TESTS + <<: *IOX_TASK_TIMEOUT + test_binaries_cache: + folder: iox-tests-bin + reupload_on_changes: false + fingerprint_key: $CIRRUS_OS_archlinux_x64_gcc_8_3_aka_qnx_canary_test_binaries_cache + test_script: + <<: *IOX_RUN_TESTS + # # Arch Linux x64 # @@ -133,7 +185,7 @@ arch_linux_x64_build_task: reupload_on_changes: true fingerprint_key: $CIRRUS_OS_archlinux_x64_test_binaries_cache build_script: - <<: *IOX_POSIX_CLEAN_BUILD_WITH_ADDITIONAL_USER + <<: *IOX_POSIX_CLEAN_BUILD_STRICT_WITH_ADDITIONAL_USER populate_test_binary_folder_script: <<: *IOX_PREPARE_TEST_BINARIES_FOR_CACHE @@ -168,7 +220,7 @@ freebsd_x64_build_task: - pkg install -y cmake git ncurses bash wget - ln -s /usr/local/bin/bash /bin/bash build_script: - <<: *IOX_POSIX_CLEAN_BUILD + <<: *IOX_POSIX_CLEAN_BUILD_STRICT_WITH_NO_ADDITIONAL_USER populate_test_binary_folder_script: <<: *IOX_PREPARE_TEST_BINARIES_FOR_CACHE @@ -202,7 +254,7 @@ macos_aarch64_build_task: setup_script: - brew install ncurses build_script: - <<: *IOX_POSIX_CLEAN_BUILD + <<: *IOX_POSIX_CLEAN_BUILD_STRICT_WITH_NO_ADDITIONAL_USER populate_test_binary_folder_script: <<: *IOX_PREPARE_TEST_BINARIES_FOR_CACHE From 4597253b8e63bed45bfefd05033fc747821630a4 Mon Sep 17 00:00:00 2001 From: Mathias Kraus Date: Thu, 9 Nov 2023 18:12:20 +0100 Subject: [PATCH 4/6] iox-#2011 Restrict cirrus-ci to specific branches --- .cirrus.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.cirrus.yaml b/.cirrus.yaml index 44fdc2a429..493b28a839 100644 --- a/.cirrus.yaml +++ b/.cirrus.yaml @@ -12,6 +12,18 @@ --- +# +# Filter to run the CI only on the master and release branches or for pull request to the master, release* and iox-* branches +# + +only_if: $CIRRUS_BRANCH == 'master' + || $CIRRUS_BRANCH == 'release*' + || ($CIRRUS_PR != '' && ($CIRRUS_BASE_BRANCH == 'master' + || $CIRRUS_BASE_BRANCH == 'release*' + || $CIRRUS_BASE_BRANCH == 'iox-*' + ) + ) + # # Templates # From 426a78e9f72aad9133a4f8c3a1406db3e66faa6e Mon Sep 17 00:00:00 2001 From: Mathias Kraus Date: Fri, 10 Nov 2023 20:24:43 +0100 Subject: [PATCH 5/6] iox-#2084 Update release notes --- doc/website/release-notes/iceoryx-unreleased.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/website/release-notes/iceoryx-unreleased.md b/doc/website/release-notes/iceoryx-unreleased.md index 0c935d2e01..b00ed585c7 100644 --- a/doc/website/release-notes/iceoryx-unreleased.md +++ b/doc/website/release-notes/iceoryx-unreleased.md @@ -101,7 +101,7 @@ - Fix musl libc compile (missing sys/stat.h include in mqueue.h for mode_t definition) [\#2072](https://github.com/eclipse-iceoryx/iceoryx/issues/2072) - cxx::Expects macro conflicts with Microsoft GSL Expects macro [#2080](https://github.com/eclipse-iceoryx/iceoryx/issues/2080) - Implement move/copy constructor and assignment for `FixedPositionContainer` [#2052](https://github.com/eclipse-iceoryx/iceoryx/issues/2052) - +- FixedPositionContainer fails to compile on QNX QCC [#2084](https://github.com/eclipse-iceoryx/iceoryx/issues/2084) **Refactoring:** From 03c632ffda786e57e092bfc6f61fe850babafeb3 Mon Sep 17 00:00:00 2001 From: Mathias Kraus Date: Fri, 10 Nov 2023 20:43:01 +0100 Subject: [PATCH 6/6] iox-#2084 Fix cirrus-ci config --- .cirrus.yaml | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/.cirrus.yaml b/.cirrus.yaml index 493b28a839..4b7cd5f739 100644 --- a/.cirrus.yaml +++ b/.cirrus.yaml @@ -44,38 +44,40 @@ iox_common_cpu_and_memory_config_for_tests_template: &IOX_COMMON_CPU_AND_MEMORY_ # Build and Test iox_posix_pre_cmake_config_script_template: &IOX_POSIX_PRE_CMAKE_CONFIG - - echo "#### Deleting build and iox-tests-bin dir" - - if [[ -d "build" ]]; then rm -rf build; fi - - if [[ -d "iox-tests-bin" ]]; then rm -rf iox-tests-vin; fi - - echo "#### Running cmake to configure build" + echo "#### Deleting build and iox-tests-bin dir" + && if [[ -d "build" ]]; then rm -rf build; fi + && if [[ -d "iox-tests-bin" ]]; then rm -rf iox-tests-vin; fi iox_posix_post_cmake_config_script_template: &IOX_POSIX_POST_CMAKE_CONFIG - - echo "#### Running cmake to build with CIRRUS_CPU = " $CIRRUS_CPU - - cmake --build build --target install -j $CIRRUS_CPU + echo "#### Running cmake to build with CIRRUS_CPU = " $CIRRUS_CPU + && cmake --build build --target install -j $CIRRUS_CPU iox_posix_cmake_config_strict_with_no_additional_user_script_template: &IOX_POSIX_CMAKE_CONFIG_STRICT_WITH_NO_ADDITIONAL_USER - - cmake -Bbuild -Hiceoryx_meta -DBUILD_STRICT=ON -DBINDING_C=ON -DINTROSPECTION=ON -DEXAMPLES=ON -DBUILD_TEST=ON -DTEST_ADD_USER=OFF -DCMAKE_INSTALL_PREFIX=build/install + echo "#### Running cmake to configure build" + && cmake -Bbuild -Hiceoryx_meta -DBUILD_STRICT=ON -DBINDING_C=ON -DINTROSPECTION=ON -DEXAMPLES=ON -DBUILD_TEST=ON -DTEST_ADD_USER=OFF -DCMAKE_INSTALL_PREFIX=build/install iox_posix_cmake_config_strict_with_additional_user_script_template: &IOX_POSIX_CMAKE_CONFIG_STRICT_WITH_ADDITIONAL_USER - - cmake -Bbuild -Hiceoryx_meta -DBUILD_STRICT=ON -DBINDING_C=ON -DINTROSPECTION=ON -DEXAMPLES=ON -DBUILD_TEST=ON -DTEST_ADD_USER=ON -DCMAKE_INSTALL_PREFIX=build/install + echo "#### Running cmake to configure build" + && cmake -Bbuild -Hiceoryx_meta -DBUILD_STRICT=ON -DBINDING_C=ON -DINTROSPECTION=ON -DEXAMPLES=ON -DBUILD_TEST=ON -DTEST_ADD_USER=ON -DCMAKE_INSTALL_PREFIX=build/install iox_posix_cmake_config_no_strict_with_additional_user_script_template: &IOX_POSIX_CMAKE_CONFIG_NO_STRICT_WITH_ADDITIONAL_USER - - cmake -Bbuild -Hiceoryx_meta -DBUILD_STRICT=OFF -DBINDING_C=ON -DINTROSPECTION=ON -DEXAMPLES=ON -DBUILD_TEST=ON -DTEST_ADD_USER=ON -DCMAKE_INSTALL_PREFIX=build/install + echo "#### Running cmake to configure build" + && cmake -Bbuild -Hiceoryx_meta -DBUILD_STRICT=OFF -DBINDING_C=ON -DINTROSPECTION=ON -DEXAMPLES=ON -DBUILD_TEST=ON -DTEST_ADD_USER=ON -DCMAKE_INSTALL_PREFIX=build/install -iox_posix_clean_build_strict_with_no_additional_user_script_template: &IOX_POSIX_CLEAN_BUILD_STRICT_WITH_NO_ADDITIONAL_USER - <<: *IOX_POSIX_PRE_CMAKE_CONFIG - <<: *IOX_POSIX_CMAKE_CONFIG_STRICT_WITH_NO_ADDITIONAL_USER - <<: *IOX_POSIX_POST_CMAKE_CONFIG +iox_posix_clean_build_strict_with_no_additional_user_template: &IOX_POSIX_CLEAN_BUILD_STRICT_WITH_NO_ADDITIONAL_USER + - *IOX_POSIX_PRE_CMAKE_CONFIG + - *IOX_POSIX_CMAKE_CONFIG_STRICT_WITH_NO_ADDITIONAL_USER + - *IOX_POSIX_POST_CMAKE_CONFIG iox_posix_clean_build_strict_with_additional_user_template: &IOX_POSIX_CLEAN_BUILD_STRICT_WITH_ADDITIONAL_USER - <<: *IOX_POSIX_PRE_CMAKE_CONFIG - <<: *IOX_POSIX_CMAKE_CONFIG_STRICT_WITH_ADDITIONAL_USER - <<: *IOX_POSIX_POST_CMAKE_CONFIG + - *IOX_POSIX_PRE_CMAKE_CONFIG + - *IOX_POSIX_CMAKE_CONFIG_STRICT_WITH_ADDITIONAL_USER + - *IOX_POSIX_POST_CMAKE_CONFIG -iox_posix_clean_build_no_strict_with_additional_user_allow_warnings_template: &IOX_POSIX_CLEAN_BUILD_NO_STRICT_WITH_ADDITIONAL_USER_ALLOW_WARNING - <<: *IOX_POSIX_PRE_CMAKE_CONFIG - <<: *IOX_POSIX_CMAKE_CONFIG_NO_STRICT_WITH_ADDITIONAL_USER - <<: *IOX_POSIX_POST_CMAKE_CONFIG +iox_posix_clean_build_no_strict_with_additional_user_template: &IOX_POSIX_CLEAN_BUILD_NO_STRICT_WITH_ADDITIONAL_USER + - *IOX_POSIX_PRE_CMAKE_CONFIG + - *IOX_POSIX_CMAKE_CONFIG_NO_STRICT_WITH_ADDITIONAL_USER + - *IOX_POSIX_POST_CMAKE_CONFIG iox_prepare_test_binaries_for_cache_template: &IOX_PREPARE_TEST_BINARIES_FOR_CACHE - mkdir -p iox-tests-bin @@ -165,7 +167,7 @@ arch_linux_x64_gcc_8_3_aka_qnx_canary_build_task: CC: gcc-8 CXX: g++-8 build_script: - <<: *IOX_POSIX_CLEAN_BUILD_NO_STRICT_WITH_ADDITIONAL_USER_ALLOW_WARNING + <<: *IOX_POSIX_CLEAN_BUILD_STRICT_WITH_ADDITIONAL_USER populate_test_binary_folder_script: <<: *IOX_PREPARE_TEST_BINARIES_FOR_CACHE