diff options
author | Fabian Groffen <grobian@gentoo.org> | 2022-06-01 21:33:59 +0200 |
---|---|---|
committer | Fabian Groffen <grobian@gentoo.org> | 2022-06-01 21:35:44 +0200 |
commit | 3a7db093f0ad732854ad50dfb6ada378f5796e12 (patch) | |
tree | 4e10c8ac5767abd9f450a68b1a0a922089cd7b0f /dev-lang/ruby/files | |
parent | dev-libs/nss: fix build with GCC 13 (diff) | |
download | gentoo-3a7db093f0ad732854ad50dfb6ada378f5796e12.tar.gz gentoo-3a7db093f0ad732854ad50dfb6ada378f5796e12.tar.bz2 gentoo-3a7db093f0ad732854ad50dfb6ada378f5796e12.zip |
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@gentoo.org>
Diffstat (limited to 'dev-lang/ruby/files')
-rw-r--r-- | dev-lang/ruby/files/3.1/900-musl-coroutine.patch | 41 | ||||
-rw-r--r-- | 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.andrew@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) { + |