commit 0b727ee9b3f3eff2c202ee57e5a0af558589919f from: Sergey Bronnikov date: Tue Oct 15 11:54:41 2024 UTC build: bump clang version to 19 The patch bumps the Clang version from 16 to 19 in workflows that are intended to use the most modern Clang version. Many things were changed since version 16, see release notes in [1], [2], [3]. The `-Ofast` command-line option has been deprecated in Clang 19, see [3]. It is advised to switch to `-O3 -ffast-math` if the use of non-standard math behavior is intended, and -O3 otherwise. The patch replaces `-Ofast` with `-O3 -ffast-math` to suppress a message below in a build log: NO_WRAP clang-19: warning: argument '-Ofast' is deprecated; use '-O3 -ffast-math' for the same behavior, or '-O3' to enable only conforming optimizations [-Wdeprecated-ofast] NO_WRAP The bump had needed an update of Dockerfile used for building the Docker image used in the aforementioned workflows, see pull request in [4]. 1. https://releases.llvm.org/17.0.1/tools/clang/docs/ReleaseNotes.html 2. https://releases.llvm.org/18.1.6/tools/clang/docs/ReleaseNotes.html 3. https://releases.llvm.org/19.1.0/tools/clang/docs/ReleaseNotes.html 4. https://github.com/tarantool/infra/pull/206 NO_CHANGELOG=build NO_DOC=build NO_TEST=build (cherry picked from commit 11145f6a82b1753e81baf8a439b29962dfef4221) commit - f67e047aa9cf27e3dd75f85bdffd87de22386fc9 commit + 0b727ee9b3f3eff2c202ee57e5a0af558589919f blob - 054867e5f49387a837a7e397ab8ca42f66d1e8e0 blob + fdf8f27af2dbcaefd9d4db51e6832f2de61707a8 --- .github/workflows/debug_asan_clang.yml +++ .github/workflows/debug_asan_clang.yml @@ -54,7 +54,7 @@ jobs: timeout-minutes: 60 container: - image: docker.io/tarantool/testing:ubuntu-jammy-clang16 + image: docker.io/tarantool/testing:ubuntu-jammy-clang19 # Mount /dev to the container to be able to mount a disk image inside it # for successful run of the .github/actions/environment action. volumes: @@ -86,8 +86,8 @@ jobs: revision: ${{ inputs.revision }} - name: test env: - CC: clang-16 - CXX: clang++-16 + CC: clang-19 + CXX: clang++-19 run: make -f .test.mk test-debug-asan - name: Send VK Teams message on failure if: failure() blob - f30c2976131f216abafbc9f230ca182b3f1c2154 blob + 40635f6d188f71a31b041c99d5cd86daf30b2e78 --- .github/workflows/release_asan_clang.yml +++ .github/workflows/release_asan_clang.yml @@ -54,7 +54,7 @@ jobs: timeout-minutes: 60 container: - image: docker.io/tarantool/testing:ubuntu-jammy-clang16 + image: docker.io/tarantool/testing:ubuntu-jammy-clang19 # Mount /dev to the container to be able to mount a disk image inside it # for successful run of the .github/actions/environment action. volumes: @@ -86,8 +86,8 @@ jobs: revision: ${{ inputs.revision }} - name: test env: - CC: clang-16 - CXX: clang++-16 + CC: clang-19 + CXX: clang++-19 run: make -f .test.mk test-release-asan - name: Send VK Teams message on failure if: failure() blob - 7f70725fb9642fcb4c612665ae508d4f0be8270a blob + 1e7f27e13c19599501ea509bc30ce1f3aaf8993c --- .github/workflows/release_clang.yml +++ .github/workflows/release_clang.yml @@ -53,7 +53,7 @@ jobs: timeout-minutes: 60 container: - image: docker.io/tarantool/testing:ubuntu-jammy-clang16 + image: docker.io/tarantool/testing:ubuntu-jammy-clang19 # Mount /dev to the container to be able to mount a disk image inside it # for successful run of the .github/actions/environment action. volumes: @@ -85,8 +85,8 @@ jobs: revision: ${{ inputs.revision }} - name: test env: - CC: clang-16 - CXX: clang++-16 + CC: clang-19 + CXX: clang++-19 run: make -f .test.mk test-release - name: Send VK Teams message on failure if: failure() blob - 5b9ba50bdc2f3e1316d3c99abe0e6b1d65014fc5 blob + 8a8e65dbe2bbc66faa96460dbf76bf0c3d813820 --- .github/workflows/release_lto_clang.yml +++ .github/workflows/release_lto_clang.yml @@ -53,7 +53,7 @@ jobs: timeout-minutes: 60 container: - image: docker.io/tarantool/testing:ubuntu-jammy-clang16 + image: docker.io/tarantool/testing:ubuntu-jammy-clang19 # Mount /dev to the container to be able to mount a disk image inside it # for successful run of the .github/actions/environment action. volumes: @@ -85,8 +85,8 @@ jobs: revision: ${{ inputs.revision }} - name: test env: - CC: clang-16 - CXX: clang++-16 + CC: clang-19 + CXX: clang++-19 CMAKE_EXTRA_PARAMS: -DENABLE_LTO=ON run: make -f .test.mk test-release - name: Send VK Teams message on failure blob - 9a96bf9e1387cd249dc4a42c808677632639cf1e blob + c10f888645550380164790fd44d4fa1b63d04ea5 --- cmake/BuildLibXXhash.cmake +++ cmake/BuildLibXXhash.cmake @@ -12,7 +12,7 @@ macro(libxxhash_build) # Remaining properties are the same as for zstd # (see cmake/BuildZSTD.cmake). set_source_files_properties(${xxhash_src} - PROPERTIES COMPILE_FLAGS "${DEPENDENCY_CFLAGS} -Ofast -DXXH_NAMESPACE=tnt_") + PROPERTIES COMPILE_FLAGS "${DEPENDENCY_CFLAGS} -O3 -ffast-math -DXXH_NAMESPACE=tnt_") add_library(xxhash STATIC ${xxhash_src}) set(XXHASH_LIBRARIES xxhash) blob - 0dceb759c49b9e6c2ddd0d578e0c2c7d4752ae2a blob + 4d6b2c88954f3d2d52ffbfc429377c3fec84188f --- cmake/BuildZSTD.cmake +++ cmake/BuildZSTD.cmake @@ -26,7 +26,7 @@ macro(zstd_build) third_party/zstd/lib/compress/zstd_compress_sequences.c third_party/zstd/lib/compress/zstd_compress_literals.c ) - set(zstd_cflags "${DEPENDENCY_CFLAGS} -Ofast") + set(zstd_cflags "${DEPENDENCY_CFLAGS} -O3 -ffast-math") if (CC_HAS_WNO_IMPLICIT_FALLTHROUGH) set(zstd_cflags "${zstd_cflags} -Wno-implicit-fallthrough") endif()