boost1{69,70,72}: fix build w/glibc-2.34
To quote the release-notes[1]: > When _DYNAMIC_STACK_SIZE_SOURCE or _GNU_SOURCE are defined, > PTHREAD_STACK_MIN is no longer constant and is redefined to > sysconf(_SC_THREAD_STACK_MIN). This supports dynamic sized register > sets for modern architectural features like Arm SVE. This basically means that if the above applies, `#if PTHREAD_STACK_MIN > 0` won't compile anymore because `PTHREAD_STACK_MIN` isn't a hard-coded number, but `__sysconf (__SC_THREAD_STACK_MIN_VALUE)`[2]. The issue (for 1.69, 1.70, 1.72 - the other versions seem OK) was reported upstream, but only for Solaris[3], however the corresponding patches[4] seem to work as well for us. Failing Hydra build: https://hydra.nixos.org/build/150926294 [1] https://sourceware.org/pipermail/libc-alpha/2021-August/129718.html [2] See `${pkgs.glibc.dev}/include/bits/pthread_stack_min-dynamic.h` [3] https://github.com/boostorg/thread/issues/283 [4] https://github.com/conan-io/conan-center-index/pull/361
This commit is contained in:
parent
9fe34ccfbe
commit
f363b7c5df
@ -8,4 +8,6 @@ callPackage ./generic.nix (args // rec {
|
||||
# SHA256 from http://www.boost.org/users/history/version_1_69_0.html
|
||||
sha256 = "8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406";
|
||||
};
|
||||
|
||||
patches = [ ./pthread-stack-min-fix.patch ];
|
||||
})
|
||||
|
@ -8,4 +8,6 @@ callPackage ./generic.nix (args // rec {
|
||||
# SHA256 from http://www.boost.org/users/history/version_1_70_0.html
|
||||
sha256 = "430ae8354789de4fd19ee52f3b1f739e1fba576f0aded0897c3c2bc00fb38778";
|
||||
};
|
||||
|
||||
patches = [ ./pthread-stack-min-fix.patch ];
|
||||
})
|
||||
|
@ -11,5 +11,7 @@ callPackage ./generic.nix (args // rec {
|
||||
# SHA256 from http://www.boost.org/users/history/version_1_72_0.html
|
||||
sha256 = "59c9b274bc451cf91a9ba1dd2c7fdcaf5d60b1b3aa83f2c9fa143417cc660722";
|
||||
};
|
||||
|
||||
patches = [ ./pthread-stack-min-fix.patch ];
|
||||
})
|
||||
|
||||
|
15
pkgs/development/libraries/boost/pthread-stack-min-fix.patch
Normal file
15
pkgs/development/libraries/boost/pthread-stack-min-fix.patch
Normal file
@ -0,0 +1,15 @@
|
||||
Taken from https://github.com/conan-io/conan-center-index/pull/361/files
|
||||
|
||||
diff --git a/include/boost/thread/pthread/thread_data.hpp b/include/boost/thread/pthread/thread_data.hpp
|
||||
index aefbeb4..bc9b136 100644
|
||||
--- a/boost/thread/pthread/thread_data.hpp
|
||||
+++ b/boost/thread/pthread/thread_data.hpp
|
||||
@@ -57,7 +57,7 @@ namespace boost
|
||||
#else
|
||||
std::size_t page_size = ::sysconf( _SC_PAGESIZE);
|
||||
#endif
|
||||
-#if PTHREAD_STACK_MIN > 0
|
||||
+#ifdef PTHREAD_STACK_MIN
|
||||
if (size<PTHREAD_STACK_MIN) size=PTHREAD_STACK_MIN;
|
||||
#endif
|
||||
size = ((size+page_size-1)/page_size)*page_size;
|
Loading…
Reference in New Issue
Block a user