diff --git a/cmake/yacma/YACMACompilerLinkerSettings.cmake b/cmake/yacma/YACMACompilerLinkerSettings.cmake index 3d9cd9dab..e56321846 100644 --- a/cmake/yacma/YACMACompilerLinkerSettings.cmake +++ b/cmake/yacma/YACMACompilerLinkerSettings.cmake @@ -125,6 +125,18 @@ if(NOT _YACMACompilerLinkerSettingsRun) _YACMA_CHECK_ENABLE_DEBUG_CXX_FLAG(-Warray-bounds-pointer-arithmetic) # New warnings in clang 14. _YACMA_CHECK_ENABLE_DEBUG_CXX_FLAG(-Warray-parameter) + # NOTE: clang 17 enables by default a new compiler flag called "-fassume-unique-vtables": + # + # https://releases.llvm.org/17.0.1/tools/clang/docs/ReleaseNotes.html#c-language-changes + # + # This flag however seems to be buggy: + # + # https://github.com/llvm/llvm-project/issues/71196 + # + # On our part, in several projects we are experiencing Boost.serialization failures when + # (de)serialising derived objects through pointers to bases. Thus, we forcibly disable + # this new flag. + _YACMA_CHECK_ENABLE_CXX_FLAG(-fno-assume-unique-vtables) endif() # Common configuration for GCC, clang and Intel. diff --git a/doc/changelog.rst b/doc/changelog.rst index 169c872b6..c853c70cc 100644 --- a/doc/changelog.rst +++ b/doc/changelog.rst @@ -1,6 +1,16 @@ Changelog ========= +6.0.1 (unreleased) +------------------ + +Fix +~~~ + +- Workaround for a clang 17 issue that would result in + runtime exceptions during (de)serialisation + (`#458 `__). + 6.0.0 (2024-09-21) ------------------ diff --git a/tools/gha_osx_arm64_static.sh b/tools/gha_osx_arm64_static.sh index 57250fa7d..49e9e6649 100644 --- a/tools/gha_osx_arm64_static.sh +++ b/tools/gha_osx_arm64_static.sh @@ -11,7 +11,7 @@ wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge export deps_dir=$HOME/local export PATH="$HOME/miniconda/bin:$PATH" bash miniconda.sh -b -p $HOME/miniconda -conda create -y -p $deps_dir 'c-compiler<1.8' zlib 'cxx-compiler<1.8' libcxx cmake ninja \ +conda create -y -p $deps_dir c-compiler zlib cxx-compiler libcxx cmake ninja \ llvmdev tbb-devel tbb libboost-devel sleef xtensor xtensor-blas blas \ blas-devel fmt spdlog 'mppp=1.*' source activate $deps_dir diff --git a/tools/gha_osx_x86.sh b/tools/gha_osx_x86.sh index 40e2db1c0..9029937e3 100644 --- a/tools/gha_osx_x86.sh +++ b/tools/gha_osx_x86.sh @@ -11,7 +11,7 @@ wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge export deps_dir=$HOME/local export PATH="$HOME/miniconda/bin:$PATH" bash miniconda.sh -b -p $HOME/miniconda -conda create -y -p $deps_dir 'c-compiler<1.8' zlib 'cxx-compiler<1.8' libcxx cmake ninja \ +conda create -y -p $deps_dir c-compiler zlib cxx-compiler libcxx cmake ninja \ llvmdev tbb-devel tbb libboost-devel sleef xtensor xtensor-blas blas \ blas-devel fmt spdlog 'mppp=1.*' source activate $deps_dir @@ -25,7 +25,7 @@ unset CXXFLAGS unset CFLAGS # Configure. -CXX=clang++ CC=clang cmake ../ -G Ninja \ +CXX=clang++ CC=clang cmake -G Ninja ../ \ -DCMAKE_PREFIX_PATH=$deps_dir \ -DCMAKE_BUILD_TYPE=Debug \ -DHEYOKA_BUILD_TESTS=yes \ diff --git a/tools/gha_osx_x86_static.sh b/tools/gha_osx_x86_static.sh index c7e8e6333..497b3bad9 100644 --- a/tools/gha_osx_x86_static.sh +++ b/tools/gha_osx_x86_static.sh @@ -11,7 +11,7 @@ wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge export deps_dir=$HOME/local export PATH="$HOME/miniconda/bin:$PATH" bash miniconda.sh -b -p $HOME/miniconda -conda create -y -p $deps_dir 'c-compiler<1.8' zlib 'cxx-compiler<1.8' libcxx cmake ninja \ +conda create -y -p $deps_dir c-compiler zlib cxx-compiler libcxx cmake ninja \ llvmdev tbb-devel tbb libboost-devel sleef xtensor xtensor-blas blas \ blas-devel fmt spdlog 'mppp=1.*' source activate $deps_dir