gentoo/dev-lang/ruby/files/3.4/016-io-console-add-header-ruby-io.h.patch
Z. Liu a5f0a97207
dev-lang/ruby: fix build issue with gcc15
1. if USE="socks5", full protoype is required by C23
2. if CFLAGS="-flto -Werror=lto-type-mismatch", and building with
   -std=c23 (default for gcc 15), build will fail with"
   "static declaration of ‘rb_io_closed_p’ follows non-static declaration"

all patches are from upstream (w/ minor change if backport)

Closes: https://bugs.gentoo.org/945502
Closes: https://bugs.gentoo.org/945643
Signed-off-by: Z. Liu <zhixu.liu@gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/42828
Closes: https://github.com/gentoo/gentoo/pull/42828
Signed-off-by: Sam James <sam@gentoo.org>
2025-09-19 15:08:18 +01:00

59 lines
1.9 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

had been fixed by upstream in commit
https://github.com/ruby/io-console/commit/dd013030dd276a7372df34cf43ada1c14d0cbc21
This patch is a cherry picked version.
From 3226f1e3cc4787d4a00e639ff763a8b4cfcd5cdd Mon Sep 17 00:00:00 2001
From: "Z. Liu" <zhixu.liu@gmail.com>
Date: Sun, 29 Jun 2025 21:41:42 +0800
Subject: [PATCH 1/2] [ruby/io-console]: add header "ruby/io.h" for rb_io_*
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
otherwise, when compiling using gcc 15 with "-flto
-Werror=lto-type-mismatch", ext/io/console/extconf.h will have:
> #define HAVE_RB_IO_PATH 1
> #define HAVE_RB_IO_DESCRIPTOR 1
> #define HAVE_RB_IO_GET_WRITE_IO 1
> #define HAVE_RB_IO_CLOSED_P 1
> #define HAVE_RB_IO_OPEN_DESCRIPTOR 1
the build is failed with:
> console.c:1417:1: error: static declaration of rb_io_closed_p follows non-static declaration
> 1417 | rb_io_closed_p(VALUE io)
> | ^~~~~~~~~~~~~~
> ../../.././include/ruby/io.h:385:7: note: previous declaration of rb_io_closed_p with type VALUE(VALUE) {aka long unsigned int(long unsigned int)}
> 385 | VALUE rb_io_closed_p(VALUE io);
> | ^~~~~~~~~~~~~~
Signed-off-by: Z. Liu <zhixu.liu@gmail.com>
diff --git a/ext/io/console/extconf.rb b/ext/io/console/extconf.rb
index 4ad7ed6996..dd3d221ae5 100644
--- a/ext/io/console/extconf.rb
+++ b/ext/io/console/extconf.rb
@@ -10,11 +10,11 @@
abort
have_func("rb_interned_str_cstr")
-have_func("rb_io_path")
-have_func("rb_io_descriptor")
-have_func("rb_io_get_write_io")
-have_func("rb_io_closed_p")
-have_func("rb_io_open_descriptor")
+have_func("rb_io_path", "ruby/io.h")
+have_func("rb_io_descriptor", "ruby/io.h")
+have_func("rb_io_get_write_io", "ruby/io.h")
+have_func("rb_io_closed_p", "ruby/io.h")
+have_func("rb_io_open_descriptor", "ruby/io.h")
have_func("rb_ractor_local_storage_value_newkey")
is_wasi = /wasi/ =~ MakeMakefile::RbConfig::CONFIG["platform"]
--
2.45.2