Project

General

Profile

Actions

Bug #21497

closed

building issue when using gcc15, because C23 is default

Added by liuzx (Liu Z.) 1 day ago. Updated 1 day ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
3.2, 3.3, 3.4
[ruby-core:122639]

Description

https://github.com/ruby/ruby/pull/13736

  1. 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

  1. 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();
| ^~~~~~~~~


Related issues 1 (0 open1 closed)

Has duplicate Ruby - Bug #21496: Fix for gcc-15 `-flto` optionClosedActions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0