commit:     3a7db093f0ad732854ad50dfb6ada378f5796e12
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Wed Jun  1 19:33:59 2022 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Wed Jun  1 19:35:44 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3a7db093

dev-lang/ruby-3.1.2*: fix patching for musl #840993

Some typo seems to have snuck in.  The coroutine patch was included
upstream for 3.1, yet it was copied to 3.1 files, the necessary
stacksize patch wasn't.  Then the 901 patch was referenced from the
ebuild, which didn't exist.

Copy the stacksize patch to 3.1 dir, drop the upstreamed coroutine
patch.

Closes: https://bugs.gentoo.org/840993
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 dev-lang/ruby/files/3.1/900-musl-coroutine.patch | 41 ------------------------
 dev-lang/ruby/files/3.1/901-musl-stacksize.patch | 26 +++++++++++++++
 2 files changed, 26 insertions(+), 41 deletions(-)

diff --git a/dev-lang/ruby/files/3.1/900-musl-coroutine.patch 
b/dev-lang/ruby/files/3.1/900-musl-coroutine.patch
deleted file mode 100644
index ed47c54e29c7..000000000000
--- a/dev-lang/ruby/files/3.1/900-musl-coroutine.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Adapted for Gentoo version 2.7.4
-
-From b570e7de87aaad8c903176d835e8124127f627b3 Mon Sep 17 00:00:00 2001
-From: Andrew Aladjev <aladjev.and...@gmail.com>
-Date: Sat, 26 Sep 2020 12:58:06 +0300
-Subject: [PATCH] fixed default coroutine selection for musl
-
----
- configure.ac             | 5 ++++-
- coroutine/copy/Context.c | 2 ++
- 2 files changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index ab5d532c103b..084f0936c006 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2364,7 +2364,10 @@
-             rb_cv_coroutine=copy
-         ],
-         [*], [
--            rb_cv_coroutine=ucontext
-+            AC_CHECK_FUNCS([getcontext swapcontext makecontext],
-+                [rb_cv_coroutine=ucontext],
-+                [rb_cv_coroutine=copy; break]
-+            )
-         ]
-     )
-     AC_MSG_RESULT(${rb_cv_coroutine})
-diff --git a/coroutine/copy/Context.c b/coroutine/copy/Context.c
-index c1b4144e9857..94a7f57f7d89 100644
---- a/coroutine/copy/Context.c
-+++ b/coroutine/copy/Context.c
-@@ -5,6 +5,8 @@
-  *  Copyright, 2019, by Samuel Williams.
- */
- 
-+#include <sys/types.h>
-+
- #include "Context.h"
- 
- // http://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html

diff --git a/dev-lang/ruby/files/3.1/901-musl-stacksize.patch 
b/dev-lang/ruby/files/3.1/901-musl-stacksize.patch
new file mode 100644
index 000000000000..e5fcfce2195e
--- /dev/null
+++ b/dev-lang/ruby/files/3.1/901-musl-stacksize.patch
@@ -0,0 +1,26 @@
+musl has a conservative stacksize, as compared to glibc, so treat it
+like other systems with such stacksize
+
+diff --git a/thread_pthread.c b/thread_pthread.c
+index 951885ffa0..e2d662143b 100644
+--- a/thread_pthread.c
++++ b/thread_pthread.c
+@@ -721,7 +721,7 @@ ruby_init_stack(volatile VALUE *addr
+ {
+     native_main_thread.id = pthread_self();
+ 
+-#if MAINSTACKADDR_AVAILABLE
++#if MAINSTACKADDR_AVAILABLE && !(defined(__linux__) && !defined(__GLIBC__))
+     if (native_main_thread.stack_maxsize) return;
+     {
+        void* stackaddr;
+@@ -1680,7 +1680,7 @@ ruby_stack_overflowed_p(const rb_thread_t *th, const 
void *addr)
+
+ #ifdef STACKADDR_AVAILABLE
+     if (get_stack(&base, &size) == 0) {
+-# ifdef __APPLE__
++# if defined(__APPLE__) || (defined(__linux__) && !defined(__GLIBC__))
+       if (pthread_equal(th->thread_id, native_main_thread.id)) {
+           struct rlimit rlim;
+           if (getrlimit(RLIMIT_STACK, &rlim) == 0 && rlim.rlim_cur > size) {
+

Reply via email to