From ee6960e53e1d86562cc85061f9e63b8ce7c124d7 Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Tue, 30 Apr 2024 03:41:38 +0200 Subject: [PATCH] boost: Add 1.85.0 (#43788) * boost: Add 1.85.0 * Add conflict for Boost 1.85.0 stacktrace change --- .../repos/builtin/packages/boost/package.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py index 55b9934b3f..801ecb03b4 100644 --- a/var/spack/repos/builtin/packages/boost/package.py +++ b/var/spack/repos/builtin/packages/boost/package.py @@ -29,8 +29,9 @@ class Boost(Package): license("BSL-1.0") version("develop", branch="develop", submodules=True) - version("1.83.0", sha256="6478edfe2f3305127cffe8caf73ea0176c53769f4bf1585be237eb30798c3b8e") + version("1.85.0", sha256="7009fe1faa1697476bdc7027703a2badb84e849b7b0baad5086b087b971f8617") version("1.84.0", sha256="cc4b893acf645c9d4b698e9a0f08ca8846aa5d6c68275c14c3e7949c24109454") + version("1.83.0", sha256="6478edfe2f3305127cffe8caf73ea0176c53769f4bf1585be237eb30798c3b8e") version("1.82.0", sha256="a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6") version("1.81.0", sha256="71feeed900fbccca04a3b4f2f84a7c217186f28a940ed8b7ed4725986baf99fa") version("1.80.0", sha256="1e19565d82e43bc59209a168f5ac899d3ba471d55c7610c677d4ccf2c9c500c0") @@ -287,6 +288,13 @@ def libs(self): # (https://github.com/spack/spack/pull/32879#issuecomment-1265933265) conflicts("%oneapi", when="@1.80") + # Boost 1.85.0 stacktrace added a hard compilation error that has to + # explicitly be suppressed on some platforms: + # https://github.com/boostorg/stacktrace/pull/150. This conflict could be + # turned into a variant that allows users to opt-in when they know it is + # safe to do so on affected platforms. + conflicts("+clanglibcpp", when="@1.85: +stacktrace") + # Patch fix from https://svn.boost.org/trac/boost/ticket/11856 patch("boost_11856.patch", when="@1.60.0%gcc@4.4.7") @@ -636,6 +644,13 @@ def determine_b2_options(self, spec, options): if spec.variants["cxxstd"].value == "11": cxxflags.append("-std=c++11") + # See conflict above and + # https://github.com/boostorg/stacktrace/pull/150. This suppresses a + # compilation error that must be explicitly suppressed. Because of the + # conflict we can suppress the error without input from a user. + if spec.satisfies("@1.85: +stacktrace"): + cxxflags.append("-DBOOST_STACKTRACE_LIBCXX_RUNTIME_MAY_CAUSE_MEMORY_LEAK") + if cxxflags: options.append('cxxflags="{0}"'.format(" ".join(cxxflags)))