summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorMikael Simberg <mikael.simberg@iki.fi>2023-05-04 09:56:02 +0200
committerGitHub <noreply@github.com>2023-05-04 09:56:02 +0200
commit3bfd948ec84e320c1a06ab4af272c629fe0126de (patch)
tree328f5f9edbc6605ed669ec2d270d5fea80f5b628 /var
parent58e527935c1e078d655f0c1330223c14cb0aa587 (diff)
downloadspack-3bfd948ec84e320c1a06ab4af272c629fe0126de.tar.gz
spack-3bfd948ec84e320c1a06ab4af272c629fe0126de.tar.bz2
spack-3bfd948ec84e320c1a06ab4af272c629fe0126de.tar.xz
spack-3bfd948ec84e320c1a06ab4af272c629fe0126de.zip
Add patches for generic context coroutine stack allocation in pika on macos (#37288)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/pika/generic_context_allocate_guard_0_10_12.patch15
-rw-r--r--var/spack/repos/builtin/packages/pika/generic_context_allocate_guard_0_13_14.patch14
-rw-r--r--var/spack/repos/builtin/packages/pika/package.py5
-rw-r--r--var/spack/repos/builtin/packages/pika/posix_stack_non_executable_0_13.patch13
-rw-r--r--var/spack/repos/builtin/packages/pika/posix_stack_non_executable_0_1_0_5.patch13
-rw-r--r--var/spack/repos/builtin/packages/pika/posix_stack_non_executable_0_6_0_12.patch13
6 files changed, 73 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/pika/generic_context_allocate_guard_0_10_12.patch b/var/spack/repos/builtin/packages/pika/generic_context_allocate_guard_0_10_12.patch
new file mode 100644
index 0000000000..64c691668e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pika/generic_context_allocate_guard_0_10_12.patch
@@ -0,0 +1,15 @@
+diff --git a/libs/pika/coroutines/include/pika/coroutines/detail/context_generic_context.hpp b/libs/pika/coroutines/include/pika/coroutines/detail/context_generic_context.hpp
+index a26314a0..38d4e7f1 100644
+--- a/libs/pika/coroutines/include/pika/coroutines/detail/context_generic_context.hpp
++++ b/libs/pika/coroutines/include/pika/coroutines/detail/context_generic_context.hpp
+@@ -92,9 +92,7 @@ namespace pika::threads::coroutines {
+
+ void* allocate(std::size_t size) const
+ {
+-#if defined(_POSIX_VERSION) && \
+- !(defined(__APPLE__) && \
+- (defined(arm64) || defined(__arm64) || defined(__arm64__)))
++#if defined(_POSIX_VERSION)
+ void* limit = posix::alloc_stack(size);
+ posix::watermark_stack(limit, size);
+ #else
diff --git a/var/spack/repos/builtin/packages/pika/generic_context_allocate_guard_0_13_14.patch b/var/spack/repos/builtin/packages/pika/generic_context_allocate_guard_0_13_14.patch
new file mode 100644
index 0000000000..dccb490b0c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pika/generic_context_allocate_guard_0_13_14.patch
@@ -0,0 +1,14 @@
+diff --git a/libs/pika/coroutines/include/pika/coroutines/detail/context_generic_context.hpp b/libs/pika/coroutines/include/pika/coroutines/detail/context_generic_context.hpp
+index 79eabdb7a..0a6028ae8 100644
+--- a/libs/pika/coroutines/include/pika/coroutines/detail/context_generic_context.hpp
++++ b/libs/pika/coroutines/include/pika/coroutines/detail/context_generic_context.hpp
+@@ -91,8 +91,7 @@ namespace pika::threads::coroutines {
+
+ void* allocate(std::size_t size) const
+ {
+-# if defined(_POSIX_VERSION) && \
+- !(defined(__APPLE__) && (defined(arm64) || defined(__arm64) || defined(__arm64__)))
++# if defined(_POSIX_VERSION)
+ void* limit = posix::alloc_stack(size);
+ posix::watermark_stack(limit, size);
+ # else
diff --git a/var/spack/repos/builtin/packages/pika/package.py b/var/spack/repos/builtin/packages/pika/package.py
index e22691a415..7fbaabba31 100644
--- a/var/spack/repos/builtin/packages/pika/package.py
+++ b/var/spack/repos/builtin/packages/pika/package.py
@@ -144,6 +144,11 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage):
# Patches
patch("transform_mpi_includes.patch", when="@0.3.0 +mpi")
patch("mimalloc_no_version_requirement.patch", when="@:0.5 malloc=mimalloc")
+ patch("generic_context_allocate_guard_0_13_14.patch", when="@0.13:0.14 platform=darwin")
+ patch("generic_context_allocate_guard_0_10_12.patch", when="@0.10:0.12 platform=darwin")
+ patch("posix_stack_non_executable_0_13.patch", when="@0.13 platform=darwin")
+ patch("posix_stack_non_executable_0_6_0_12.patch", when="@0.6:0.12 platform=darwin")
+ patch("posix_stack_non_executable_0_1_0_5.patch", when="@:0.5 platform=darwin")
# Fix missing template instantiation on macOS
patch(
diff --git a/var/spack/repos/builtin/packages/pika/posix_stack_non_executable_0_13.patch b/var/spack/repos/builtin/packages/pika/posix_stack_non_executable_0_13.patch
new file mode 100644
index 0000000000..77e70f8acc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pika/posix_stack_non_executable_0_13.patch
@@ -0,0 +1,13 @@
+diff --git a/libs/pika/coroutines/include/pika/coroutines/detail/posix_utility.hpp b/libs/pika/coroutines/include/pika/coroutines/detail/posix_utility.hpp
+index 107fe781..be52d9c9 100644
+--- a/libs/pika/coroutines/include/pika/coroutines/detail/posix_utility.hpp
++++ b/libs/pika/coroutines/include/pika/coroutines/detail/posix_utility.hpp
+@@ -77,7 +77,7 @@ namespace pika::threads::coroutines::detail::posix {
+
+ inline void* alloc_stack(std::size_t size)
+ {
+- void* real_stack = ::mmap(nullptr, size + EXEC_PAGESIZE, PROT_EXEC | PROT_READ | PROT_WRITE,
++ void* real_stack = ::mmap(nullptr, size + EXEC_PAGESIZE, PROT_READ | PROT_WRITE,
+ # if defined(__APPLE__)
+ MAP_PRIVATE | MAP_ANON | MAP_NORESERVE,
+ # elif defined(__FreeBSD__)
diff --git a/var/spack/repos/builtin/packages/pika/posix_stack_non_executable_0_1_0_5.patch b/var/spack/repos/builtin/packages/pika/posix_stack_non_executable_0_1_0_5.patch
new file mode 100644
index 0000000000..8b5eae3057
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pika/posix_stack_non_executable_0_1_0_5.patch
@@ -0,0 +1,13 @@
+diff --git a/libs/pika/coroutines/include/pika/coroutines/detail/posix_utility.hpp b/libs/pika/coroutines/include/pika/coroutines/detail/posix_utility.hpp
+index aba1863d..bdbddd2f 100644
+--- a/libs/pika/coroutines/include/pika/coroutines/detail/posix_utility.hpp
++++ b/libs/pika/coroutines/include/pika/coroutines/detail/posix_utility.hpp
+@@ -80,7 +80,7 @@ namespace pika { namespace threads { namespace coroutines { namespace detail {
+ inline void* alloc_stack(std::size_t size)
+ {
+ void* real_stack = ::mmap(nullptr, size + EXEC_PAGESIZE,
+- PROT_EXEC | PROT_READ | PROT_WRITE,
++ PROT_READ | PROT_WRITE,
+ #if defined(__APPLE__)
+ MAP_PRIVATE | MAP_ANON | MAP_NORESERVE,
+ #elif defined(__FreeBSD__)
diff --git a/var/spack/repos/builtin/packages/pika/posix_stack_non_executable_0_6_0_12.patch b/var/spack/repos/builtin/packages/pika/posix_stack_non_executable_0_6_0_12.patch
new file mode 100644
index 0000000000..c25e1fe407
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pika/posix_stack_non_executable_0_6_0_12.patch
@@ -0,0 +1,13 @@
+diff --git a/libs/pika/coroutines/include/pika/coroutines/detail/posix_utility.hpp b/libs/pika/coroutines/include/pika/coroutines/detail/posix_utility.hpp
+index d53ac752..7c02f781 100644
+--- a/libs/pika/coroutines/include/pika/coroutines/detail/posix_utility.hpp
++++ b/libs/pika/coroutines/include/pika/coroutines/detail/posix_utility.hpp
+@@ -79,7 +79,7 @@ namespace pika::threads::coroutines::detail::posix {
+ inline void* alloc_stack(std::size_t size)
+ {
+ void* real_stack = ::mmap(nullptr, size + EXEC_PAGESIZE,
+- PROT_EXEC | PROT_READ | PROT_WRITE,
++ PROT_READ | PROT_WRITE,
+ #if defined(__APPLE__)
+ MAP_PRIVATE | MAP_ANON | MAP_NORESERVE,
+ #elif defined(__FreeBSD__)