From b0af8f2c298487250ef25158a3fe52405ecfe01f Mon Sep 17 00:00:00 2001 From: Darius Neatu Date: Mon, 11 Nov 2024 12:49:16 +0200 Subject: [PATCH 1/3] Enable clang-20 support --- .github/workflows/ci.yml | 9 ++--- CMakePresets.json | 68 ++++++++++++++++++++++++++++++++++++ etc/clang-20-toolchain.cmake | 5 +++ 3 files changed, 78 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1a41d1c8..9389fd60 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,13 +13,14 @@ jobs: fail-fast: false matrix: config: - - {name: "Ubuntu Clang 17", os: ubuntu-24.04, toolchain: "clang-17", clang_version: 17, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} - - {name: "Ubuntu Clang 18", os: ubuntu-24.04, toolchain: "clang-18", clang_version: 18, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} + - {name: "Ubuntu Clang 20", os: ubuntu-24.04, toolchain: "clang-20", clang_version: 20, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} # Note: clang-19 + Asan setup causes errors on some platforms. Temporary skip some checks via .asan_options. - {name: "Ubuntu Clang 19", os: ubuntu-24.04, toolchain: "clang-19", clang_version: 19, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" ", asan_options: "new_delete_type_mismatch=0"} - - {name: "Ubuntu GCC 12", os: ubuntu-24.04, toolchain: "gcc-12", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} - - {name: "Ubuntu GCC 13", os: ubuntu-24.04, toolchain: "gcc-13", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} + - {name: "Ubuntu Clang 18", os: ubuntu-24.04, toolchain: "clang-18", clang_version: 18, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} + - {name: "Ubuntu Clang 17", os: ubuntu-24.04, toolchain: "clang-17", clang_version: 17, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} - {name: "Ubuntu GCC 14", os: ubuntu-24.04, toolchain: "gcc-14", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} + - {name: "Ubuntu GCC 13", os: ubuntu-24.04, toolchain: "gcc-13", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} + - {name: "Ubuntu GCC 12", os: ubuntu-24.04, toolchain: "gcc-12", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} steps: - uses: actions/checkout@v3 with: diff --git a/CMakePresets.json b/CMakePresets.json index eb05f0c9..5bc3bab2 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -38,6 +38,20 @@ "description": "Build with GCC 13 compilers", "toolchainFile": "${sourceDir}/etc/gcc-13-toolchain.cmake" }, + { + "name": "gcc-12", + "inherits": "common", + "displayName": "GCC 12", + "description": "Build with GCC 12 compilers", + "toolchainFile": "${sourceDir}/etc/gcc-12-toolchain.cmake" + }, + { + "name": "clang-20", + "inherits": "common", + "displayName": "Clang 20", + "description": "Build with Clang 20 compilers", + "toolchainFile": "${sourceDir}/etc/clang-20-toolchain.cmake" + }, { "name": "clang-19", "inherits": "common", @@ -81,6 +95,16 @@ "inherits": "common", "configurePreset": "gcc-13" }, + { + "name": "gcc-12", + "inherits": "common", + "configurePreset": "gcc-12" + }, + { + "name": "clang-20", + "inherits": "common", + "configurePreset": "clang-20" + }, { "name": "clang-19", "inherits": "common", @@ -125,6 +149,16 @@ "inherits": "common", "configurePreset": "gcc-13" }, + { + "name": "gcc-12", + "inherits": "common", + "configurePreset": "gcc-12" + }, + { + "name": "clang-20", + "inherits": "common", + "configurePreset": "clang-20" + }, { "name": "clang-19", "inherits": "common", @@ -193,6 +227,40 @@ } ] }, + { + "name": "gcc-12", + "steps": [ + { + "type": "configure", + "name": "gcc-12" + }, + { + "type": "build", + "name": "gcc-12" + }, + { + "type": "test", + "name": "gcc-12" + } + ] + }, + { + "name": "clang-20", + "steps": [ + { + "type": "configure", + "name": "clang-20" + }, + { + "type": "build", + "name": "clang-20" + }, + { + "type": "test", + "name": "clang-20" + } + ] + }, { "name": "clang-19", "steps": [ diff --git a/etc/clang-20-toolchain.cmake b/etc/clang-20-toolchain.cmake index 8a6f537c..b41013da 100644 --- a/etc/clang-20-toolchain.cmake +++ b/etc/clang-20-toolchain.cmake @@ -1,3 +1,8 @@ +# cmake-format: off +# etc/clang-20-toolchain.cmake -*-cmake-*- +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +# cmake-format: on + include_guard(GLOBAL) set(CMAKE_C_COMPILER clang-20) From a21cf9a21ad961e5c5a92da82ed0b9489872bfb4 Mon Sep 17 00:00:00 2001 From: Darius Neatu Date: Mon, 11 Nov 2024 13:00:57 +0200 Subject: [PATCH 2/3] Enable clang-16 support --- .github/workflows/ci.yml | 1 + CMakePresets.json | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9389fd60..fa250389 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,6 +18,7 @@ jobs: - {name: "Ubuntu Clang 19", os: ubuntu-24.04, toolchain: "clang-19", clang_version: 19, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" ", asan_options: "new_delete_type_mismatch=0"} - {name: "Ubuntu Clang 18", os: ubuntu-24.04, toolchain: "clang-18", clang_version: 18, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} - {name: "Ubuntu Clang 17", os: ubuntu-24.04, toolchain: "clang-17", clang_version: 17, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} + - {name: "Ubuntu Clang 16", os: ubuntu-24.04, toolchain: "clang-16", clang_version: 16, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} - {name: "Ubuntu GCC 14", os: ubuntu-24.04, toolchain: "gcc-14", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} - {name: "Ubuntu GCC 13", os: ubuntu-24.04, toolchain: "gcc-13", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} - {name: "Ubuntu GCC 12", os: ubuntu-24.04, toolchain: "gcc-12", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} diff --git a/CMakePresets.json b/CMakePresets.json index 5bc3bab2..e88642e6 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -72,6 +72,13 @@ "displayName": "Clang 17", "description": "Build with Clang 17 compilers", "toolchainFile": "${sourceDir}/etc/clang-17-toolchain.cmake" + }, + { + "name": "clang-16", + "inherits": "common", + "displayName": "Clang 16", + "description": "Build with Clang 16 compilers", + "toolchainFile": "${sourceDir}/etc/clang-16-toolchain.cmake" } ], "buildPresets": [ @@ -119,6 +126,11 @@ "name": "clang-17", "inherits": "common", "configurePreset": "clang-17" + }, + { + "name": "clang-16", + "inherits": "common", + "configurePreset": "clang-16" } ], "testPresets": [ @@ -173,6 +185,11 @@ "name": "clang-17", "inherits": "common", "configurePreset": "clang-17" + }, + { + "name": "clang-16", + "inherits": "common", + "configurePreset": "clang-16" } ], "workflowPresets": [ @@ -311,6 +328,23 @@ "name": "clang-17" } ] + }, + { + "name": "clang-16", + "steps": [ + { + "type": "configure", + "name": "clang-16" + }, + { + "type": "build", + "name": "clang-16" + }, + { + "type": "test", + "name": "clang-16" + } + ] } ] } From df0b9d25b526f1d6238b48cee2a6b7c029815fe7 Mon Sep 17 00:00:00 2001 From: Darius Neatu Date: Mon, 11 Nov 2024 13:07:55 +0200 Subject: [PATCH 3/3] Disable clang-16 CI build due to llvm.sh error on CI --- .github/workflows/ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fa250389..9389fd60 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,6 @@ jobs: - {name: "Ubuntu Clang 19", os: ubuntu-24.04, toolchain: "clang-19", clang_version: 19, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" ", asan_options: "new_delete_type_mismatch=0"} - {name: "Ubuntu Clang 18", os: ubuntu-24.04, toolchain: "clang-18", clang_version: 18, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} - {name: "Ubuntu Clang 17", os: ubuntu-24.04, toolchain: "clang-17", clang_version: 17, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} - - {name: "Ubuntu Clang 16", os: ubuntu-24.04, toolchain: "clang-16", clang_version: 16, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} - {name: "Ubuntu GCC 14", os: ubuntu-24.04, toolchain: "gcc-14", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} - {name: "Ubuntu GCC 13", os: ubuntu-24.04, toolchain: "gcc-13", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} - {name: "Ubuntu GCC 12", os: ubuntu-24.04, toolchain: "gcc-12", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}