commit c456ecad7722f43455226bdac6a396ea428789c7 from: Sergey Bronnikov date: Sat Sep 28 06:39:26 2024 UTC build: bump clang version to 19 The patch bumps Clang version from 16 to 19 in workflows that 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 Docker image used in 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 commit - 7cf41a1bb9b3f0a2eac82c296a764688f5d8b35c commit + c456ecad7722f43455226bdac6a396ea428789c7 blob - d7856d175682578a04b928e7cfca399041407c46 blob + 7b54799ddd4d94d90c02ce6e47077fa2b6f7e7d1 --- .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 - aca1330eae6022f95e45388bf164450ce98a3961 blob + 2176b90525efd000df845b6d596364a5b4b4cb50 --- .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 - f129e6bb930b2cc07d2de1fcecd06b1a02f40979 blob + 8e03021ffdbf68b71e19f65bbf1cadf3bfd71720 --- .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 - dcd7a0bd62f64ba9df6ed4b83ef4721e03dff2dc blob + c95757c089ef011ffc484157a489f1405257029e --- .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()