diff --git a/azure-pipelines.yml b/azure-pipelines.yml index dc0b5e7b9054..fc6907588c27 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -73,7 +73,7 @@ jobs: CCACHE_MAXSIZE: 2G OS_NAME: $(Agent.OS) PARENT_BRANCH: trunk - INVERTED: OFF + BUILD_PARAMS_TYPE: normal strategy: matrix: @@ -90,54 +90,69 @@ jobs: BuildType: Debug # clang-10 and newer compilers - clang-17 RelWithDebInfo [Ubuntu 22.04 Jammy]: + clang-18 RelWithDebInfo [Ubuntu 22.04 Jammy]: imageName: 'ubuntu-22.04' UBUNTU_CODE_NAME: jammy Compiler: clang - CompilerVer: 17 + CompilerVer: 18 BuildType: RelWithDebInfo ${{ if or(ne(variables['Build.Reason'], 'PullRequest'), contains(variables['Build.SourceBranchName'], 'fullci')) }}: - clang-17 RelWithDebInfo INVERTED=ON [Ubuntu 22.04 Jammy]: + clang-18 RelWithDebInfo INVERTED [Ubuntu 22.04 Jammy]: imageName: 'ubuntu-22.04' UBUNTU_CODE_NAME: jammy Compiler: clang - CompilerVer: 17 + CompilerVer: 18 BuildType: RelWithDebInfo - INVERTED: ON + BUILD_PARAMS_TYPE: inverted ${{ if or(ne(variables['Build.Reason'], 'PullRequest'), contains(variables['Build.SourceBranchName'], 'fullci')) }}: - clang-17 Debug [Ubuntu 22.04 Jammy]: + clang-18 Debug [Ubuntu 22.04 Jammy]: imageName: 'ubuntu-22.04' UBUNTU_CODE_NAME: jammy Compiler: clang - CompilerVer: 17 + CompilerVer: 18 BuildType: Debug - clang-17 Debug INVERTED=ON [Ubuntu 22.04 Jammy]: + clang-18 Debug INVERTED [Ubuntu 22.04 Jammy]: imageName: 'ubuntu-22.04' UBUNTU_CODE_NAME: jammy Compiler: clang - CompilerVer: 17 + CompilerVer: 18 BuildType: Debug - INVERTED: ON + BUILD_PARAMS_TYPE: inverted ${{ if or(ne(variables['Build.Reason'], 'PullRequest'), contains(variables['Build.SourceBranchName'], 'fullci')) }}: - clang-16 RelWithDebInfo [Ubuntu 22.04 Jammy]: + clang-17 RelWithDebInfo [Ubuntu 22.04 Jammy]: imageName: 'ubuntu-22.04' UBUNTU_CODE_NAME: jammy Compiler: clang - CompilerVer: 16 + CompilerVer: 17 BuildType: RelWithDebInfo ${{ if or(ne(variables['Build.Reason'], 'PullRequest'), contains(variables['Build.SourceBranchName'], 'fullci')) }}: - clang-16 Debug [Ubuntu 22.04 Jammy]: + clang-17 Debug [Ubuntu 22.04 Jammy]: imageName: 'ubuntu-22.04' UBUNTU_CODE_NAME: jammy Compiler: clang - CompilerVer: 16 + CompilerVer: 17 BuildType: Debug + ${{ if or(ne(variables['Build.Reason'], 'PullRequest'), contains(variables['Build.SourceBranchName'], 'fullci')) }}: + clang-16 RelWithDebInfo [Ubuntu 22.04 Jammy]: + imageName: 'ubuntu-22.04' + UBUNTU_CODE_NAME: jammy + Compiler: clang + CompilerVer: 16 + BuildType: RelWithDebInfo + + clang-16 Debug [Ubuntu 22.04 Jammy]: + imageName: 'ubuntu-22.04' + UBUNTU_CODE_NAME: jammy + Compiler: clang + CompilerVer: 16 + BuildType: Debug + ${{ if or(ne(variables['Build.Reason'], 'PullRequest'), contains(variables['Build.SourceBranchName'], 'fullci')) }}: clang-15 RelWithDebInfo [Ubuntu 22.04 Jammy]: imageName: 'ubuntu-22.04' @@ -295,7 +310,7 @@ jobs: SELECTED_CXX=clang++ fi - echo SELECTED_CC=$SELECTED_CC SELECTED_CXX=$SELECTED_CXX BuildType=$(BuildType) INVERTED=$(INVERTED) imageName=$(imageName) OS_NAME=$OS_NAME + echo SELECTED_CC=$SELECTED_CC SELECTED_CXX=$SELECTED_CXX BuildType=$(BuildType) BUILD_PARAMS_TYPE=$(BUILD_PARAMS_TYPE) imageName=$(imageName) OS_NAME=$OS_NAME echo --- Configure required LLVM and Ubuntu Toolchain repositories if [[ "$OS_NAME" == "Linux" ]] && [[ "$SELECTED_CC" == "clang"* ]]; then PACKAGES="llvm-$(CompilerVer)-dev $PACKAGES" @@ -310,7 +325,7 @@ jobs: sudo -E apt-get -yq --no-install-suggests --no-install-recommends --allow-unauthenticated install $PACKAGES cmake cmake-curses-gui ccache bison libudev-dev libaio-dev libmecab-dev libnuma-dev libssl-dev libedit-dev libpam-dev libcurl4-openssl-dev libldap2-dev libkrb5-dev libsasl2-dev libsasl2-modules-gssapi-mit || exit 1; `# SYSTEM_LIBRARIES = CURL EDITLINE ICU LIBEVENT LZ4 PROTOBUF SSL ZSTD FIDO (Ubuntu 21.04+)` - if [[ "$(INVERTED)" != "ON" ]]; then + if [[ "$(BUILD_PARAMS_TYPE)" != "inverted" ]]; then sudo -E apt-get -yq --no-install-suggests --no-install-recommends --allow-unauthenticated install libicu-dev libevent-dev liblz4-dev zlib1g-dev protobuf-compiler libprotobuf-dev libprotoc-dev libzstd-dev libfido2-dev || exit 1; else sudo -E apt-get -yq --no-install-suggests --no-install-recommends --allow-unauthenticated install libgflags-dev || exit 1; @@ -340,8 +355,8 @@ jobs: - task: Cache@2 continueOnError: true inputs: - key: '"ccache"| "$(PARENT_BRANCH)" | "$(imageName)-$(Compiler)-$(REAL_COMPILER_VER)-$(BuildType)" | "INVERTED=$(INVERTED)" | "$(Build.SourceVersion)"' - restoreKeys: '"ccache" | "$(PARENT_BRANCH)" | "$(imageName)-$(Compiler)-$(REAL_COMPILER_VER)-$(BuildType)" | "INVERTED=$(INVERTED)"' + key: '"ccache"| "$(PARENT_BRANCH)" | "$(imageName)-$(Compiler)-$(REAL_COMPILER_VER)-$(BuildType)" | "BUILD_PARAMS_TYPE=$(BUILD_PARAMS_TYPE)" | "$(Build.SourceVersion)"' + restoreKeys: '"ccache" | "$(PARENT_BRANCH)" | "$(imageName)-$(Compiler)-$(REAL_COMPILER_VER)-$(BuildType)" | "BUILD_PARAMS_TYPE=$(BUILD_PARAMS_TYPE)"' path: $(CCACHE_DIR) displayName: '*** Download/upload ccached files' @@ -377,7 +392,7 @@ jobs: displayName: '*** System and compiler info' - script: | - echo SELECTED_CC=$SELECTED_CC SELECTED_CXX=$SELECTED_CXX REAL_COMPILER_VER=$REAL_COMPILER_VER BuildType=$(BuildType) INVERTED=$(INVERTED) imageName=$(imageName) OS_NAME=$OS_NAME + echo SELECTED_CC=$SELECTED_CC SELECTED_CXX=$SELECTED_CXX REAL_COMPILER_VER=$REAL_COMPILER_VER BuildType=$(BuildType) BUILD_PARAMS_TYPE=$(BUILD_PARAMS_TYPE) imageName=$(imageName) OS_NAME=$OS_NAME echo --- Set cmake parameters COMPILE_OPT+=( -DCMAKE_C_FLAGS_DEBUG=-g1 @@ -415,7 +430,7 @@ jobs: CMAKE_OPT+=" -DMYSQL_MAINTAINER_MODE=ON " - if [[ "$(INVERTED)" != "ON" ]]; then + if [[ "$(BUILD_PARAMS_TYPE)" != "inverted" ]]; then CMAKE_OPT+=" -DWITH_MECAB=system -DWITH_NUMA=ON diff --git a/cmake/maintainer.cmake b/cmake/maintainer.cmake index 68ea351b68fd..a97b6190e50a 100644 --- a/cmake/maintainer.cmake +++ b/cmake/maintainer.cmake @@ -108,6 +108,11 @@ IF(MY_COMPILER_IS_CLANG) STRING_APPEND(MY_CXX_WARNING_FLAGS " -Wno-shorten-64-to-32") ENDIF() + # Suppress warnings for clang-18 or newer + IF(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18) + STRING_APPEND(MY_CXX_WARNING_FLAGS " -Wno-deprecated-declarations") + ENDIF() + STRING_APPEND(MY_CXX_WARNING_FLAGS " -Wextra-semi") STRING_APPEND(MY_CXX_WARNING_FLAGS " -Wheader-hygiene") STRING_APPEND(MY_CXX_WARNING_FLAGS " -Wnon-virtual-dtor") diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt index d40d2744e730..d3a48bfaca42 100644 --- a/sql/CMakeLists.txt +++ b/sql/CMakeLists.txt @@ -991,6 +991,11 @@ ADD_DEPENDENCIES(sql_gis GenError) TARGET_LINK_LIBRARIES(sql_gis sql_dd sql_main) SET_TARGET_PROPERTIES(sql_gis PROPERTIES LINK_INTERFACE_MULTIPLICITY 3) +# Suppress warnings for clang-18 or newer +IF(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18) + TARGET_COMPILE_OPTIONS(sql_gis PRIVATE -Wno-enum-constexpr-conversion) +ENDIF() + # This typically saves a few hundred megabytes of disk space. IF(COMPRESS_DEBUG_SECTIONS) MY_CHECK_CXX_COMPILER_FLAG("-gz" HAVE_COMPRESS_GZ_OPTION)