summary refs log tree commit diff
path: root/pkgs/development/libraries/boost
diff options
context:
space:
mode:
authorWeijia Wang <9713184+wegank@users.noreply.github.com>2023-06-30 17:15:06 +0300
committerGitHub <noreply@github.com>2023-06-30 17:15:06 +0300
commitfe35cda7f9d7255dc8678d97e39b1d1ce442e205 (patch)
tree0ea2d5338379218301ab93a0fb1845378e0ca3ad /pkgs/development/libraries/boost
parent717fa7145389201fed7b79c8056e9e364d0e0125 (diff)
parentcec7b5e87ce04a19e9b26366cf9cd6f5139a6870 (diff)
downloadnixpkgs-fe35cda7f9d7255dc8678d97e39b1d1ce442e205.tar
nixpkgs-fe35cda7f9d7255dc8678d97e39b1d1ce442e205.tar.gz
nixpkgs-fe35cda7f9d7255dc8678d97e39b1d1ce442e205.tar.bz2
nixpkgs-fe35cda7f9d7255dc8678d97e39b1d1ce442e205.tar.lz
nixpkgs-fe35cda7f9d7255dc8678d97e39b1d1ce442e205.tar.xz
nixpkgs-fe35cda7f9d7255dc8678d97e39b1d1ce442e205.tar.zst
nixpkgs-fe35cda7f9d7255dc8678d97e39b1d1ce442e205.zip
Merge pull request #240642 from reckenrode/boost-clang16
boost{175,176,177,178,179,180}: clang 16 and libc++ 15 fixes
Diffstat (limited to 'pkgs/development/libraries/boost')
-rw-r--r--pkgs/development/libraries/boost/generic.nix24
1 files changed, 23 insertions, 1 deletions
diff --git a/pkgs/development/libraries/boost/generic.nix b/pkgs/development/libraries/boost/generic.nix
index 228536a9ecf..cad0f3aaed6 100644
--- a/pkgs/development/libraries/boost/generic.nix
+++ b/pkgs/development/libraries/boost/generic.nix
@@ -112,7 +112,29 @@ stdenv.mkDerivation {
     url = "https://github.com/boostorg/math/commit/7d482f6ebc356e6ec455ccb5f51a23971bf6ce5b.patch";
     relative = "include";
     sha256 = "sha256-KlmIbixcds6GyKYt1fx5BxDIrU7msrgDdYo9Va/KJR4=";
-  });
+  })
+  # This fixes another issue regarding ill-formed constant expressions, which is a default error
+  # in clang 16 and will be a hard error in clang 17.
+  ++ lib.optional (lib.versionOlder version "1.80") (fetchpatch {
+    url = "https://github.com/boostorg/log/commit/77f1e20bd69c2e7a9e25e6a9818ae6105f7d070c.patch";
+    relative = "include";
+    hash = "sha256-6qOiGJASm33XzwoxVZfKJd7sTlQ5yd+MMFQzegXm5RI=";
+  })
+  ++ lib.optionals (lib.versionOlder version "1.81") [
+    # libc++ 15 dropped support for `std::unary_function` and `std::binary_function` in C++17+.
+    # C++17 is the default for clang 16, but clang 15 is also affected in that language mode.
+    # This patch is for Boost 1.80, but it also applies to earlier versions.
+    (fetchpatch {
+      url = "https://www.boost.org/patches/1_80_0/0005-config-libcpp15.patch";
+      hash = "sha256-ULFMzKphv70unvPZ3o4vSP/01/xbSM9a2TlIV67eXDQ=";
+    })
+    # This fixes another ill-formed contant expressions issue flagged by clang 16.
+    (fetchpatch {
+      url = "https://github.com/boostorg/numeric_conversion/commit/50a1eae942effb0a9b90724323ef8f2a67e7984a.patch";
+      relative = "include";
+      hash = "sha256-dq4SVgxkPJSC7Fvr59VGnXkM4Lb09kYDaBksCHo9C0s=";
+    })
+  ];
 
   meta = with lib; {
     homepage = "http://boost.org/";