Skip to content

Commit

Permalink
Merge pull request #5281 from inikep/PS-9188-8.0
Browse files Browse the repository at this point in the history
PS-9188 [8.0]: Add clang-18 to Azure Pipelines
  • Loading branch information
inikep authored Apr 17, 2024
2 parents f1b8865 + 310ccc7 commit 17f56c1
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 21 deletions.
57 changes: 36 additions & 21 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ jobs:
CCACHE_MAXSIZE: 2G
OS_NAME: $(Agent.OS)
PARENT_BRANCH: 8.0
INVERTED: OFF
BUILD_PARAMS_TYPE: normal

strategy:
matrix:
Expand All @@ -90,54 +90,69 @@ jobs:
BuildType: Debug

# clang-6 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'
Expand Down Expand Up @@ -391,7 +406,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"
Expand All @@ -406,7 +421,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 libreadline-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;
Expand Down Expand Up @@ -436,8 +451,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'

Expand Down Expand Up @@ -473,7 +488,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
Expand Down Expand Up @@ -526,7 +541,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
Expand Down
5 changes: 5 additions & 0 deletions cmake/maintainer.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,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")
Expand Down
5 changes: 5 additions & 0 deletions sql/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -973,6 +973,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)
Expand Down

0 comments on commit 17f56c1

Please sign in to comment.