Bug #21497
closedbuilding issue when using gcc15, because C23 is default
Description
https://github.com/ruby/ruby/pull/13736
- for ruby 3.3, 3.4: 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 un
signed int)’}
385 | VALUE rb_io_closed_p(VALUE io);
| ^~~~~~~~~~~~~~
see https://bugs.gentoo.org/945643#c17 for more detail analysis
- for ruby 3.2, 3.3, 3.4: when enable socks5 support, gcc15 will report:
init.c:573:19: error: too many arguments to function ‘Rconnect’; expected 0, have 3
573 | return (VALUE)Rconnect(arg->fd, arg->sockaddr, arg->len);
| ^~~~~~~~ ~~~~~~~
In file included from init.c:11:
rubysocket.h:294:5: note: declared here
294 | int Rconnect();
| ^~~~~~~~
sockssocket.c:33:9: error: too many arguments to function ‘SOCKSinit’; expected 0, have 1
33 | SOCKSinit("ruby");
| ^~~~~~~~~ ~~~~~~
In file included from sockssocket.c:11:
rubysocket.h:293:6: note: declared here
293 | void SOCKSinit();
| ^~~~~~~~~
Updated by liuzx (Liu Z.) about 19 hours ago
1 had been fixed in commit https://github.com/ruby/io-console/commit/dd013030dd276a7372df34cf43ada1c14d0cbc21
Updated by nobu (Nobuyoshi Nakada) about 11 hours ago
- Has duplicate Bug #21496: Fix for gcc-15 `-flto` option added
Updated by nobu (Nobuyoshi Nakada) about 11 hours ago
- Status changed from Open to Closed
- Backport changed from 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN to 3.2: REQUIRED, 3.3: REQUIRED, 3.4: REQUIRED