summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2021-02-17 19:52:20 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-02-18 23:38:20 +0000
commit3b2b401dbbb8d3aa14a5fd864178f702af3c8115 (patch)
treeebbb1fb5acb9bf4118136d83ae8b1d375b49402b
parent315fe8ab3b5bb8a709be98cd8998d4525fbe8725 (diff)
downloadopenembedded-core-contrib-3b2b401dbbb8d3aa14a5fd864178f702af3c8115.tar.gz
ruby: Do not use ucontext implementation for coroutines on musl/riscv
The coroutine implementation in ruby has either arch specific implementations or it falls back to slower ucontext API based implementation assuming libc will provide the needed APIs, however musl does not implement ucontext APIs like glibc, therefore fallback is to use libucontext library on musl. However, libucontext is not ported to riscv yet. which means on musl/riscv ruby is unbuildable, however a third option is to use copy implementation for coroutines, which will be not as good performance-wise, but it will do the job, therefore for now use copy implementation for rv32/rv64 when using musl Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-devtools/ruby/ruby_3.0.0.bb7
1 files changed, 7 insertions, 0 deletions
diff --git a/meta/recipes-devtools/ruby/ruby_3.0.0.bb b/meta/recipes-devtools/ruby/ruby_3.0.0.bb
index 5e143ee87f..28e12c3cd7 100644
--- a/meta/recipes-devtools/ruby/ruby_3.0.0.bb
+++ b/meta/recipes-devtools/ruby/ruby_3.0.0.bb
@@ -32,6 +32,13 @@ EXTRA_OECONF_append_libc-musl = "\
ac_cv_func_isinf=yes \
"
+EXTRA_OECONF_append_libc-musl_riscv64 = "\
+ --with-coroutine=copy \
+"
+EXTRA_OECONF_append_libc-musl_riscv32 = "\
+ --with-coroutine=copy \
+"
+
do_install() {
oe_runmake 'DESTDIR=${D}' install
}