Bug 1228357

Summary: Package rubygem-ruby-augeas does not build with gcc 14 because of new errors (that were previously warnings)
Product: [openSUSE] openSUSE Tumbleweed Reporter: Martin Jambor <mjambor>
Component: RubyAssignee: Ruby Devel <ruby-devel>
Status: RESOLVED DUPLICATE QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None    
Version: Current   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Bug Depends on:    
Bug Blocks: 1220571    

Description Martin Jambor 2024-07-26 12:17:43 UTC
Package rubygem-ruby-augeas fails to build with GCC 14 because of
various C99 violations which previously just generated warning s but
which cause errors with GCC 14 by default.  For more information see
https://gcc.gnu.org/gcc-14/porting_to.html and meta bug #1220571.

BuildService failures are available online at:
https://build.opensuse.org/package/live_build_log/openSUSE:Factory:Staging:Gcc7/rubygem-ruby-augeas/standard/x86_64

The build with GCC 14 can now be tried locally with:
osc build --clean --alternative-project home:rguenther:nextgcc

The (first) error that stops the build is:
[    8s] In file included from /usr/include/ruby-3.3.0/ruby/ruby.h:27,
[    8s]                  from /usr/include/ruby-3.3.0/ruby.h:38,
[    8s]                  from _augeas.h:21,
[    8s]                  from _augeas.c:22:
[    8s] /usr/include/ruby-3.3.0/ruby/internal/anyargs.h:288:135: error: passing argument 3 of ‘rb_define_method_01’ from incompatible pointer type [-Wincompatible-pointer-types]
[    8s]   288 | #define rb_define_method(klass, mid, func, arity)           RBIMPL_ANYARGS_DISPATCH_rb_define_method((arity), (func))((klass), (mid), (func), (arity))
[    8s]       |                                                                                                                                       ^~~~~~
[    8s]       |                                                                                                                                       |
[    8s]       |                                                                                                                                       VALUE (*)(VALUE,  VALUE,  VALUE) {aka long unsigned int (*)(long unsigned int,  long unsigned int,  long unsigned int)}
[    8s] _augeas.c:531:5: note: in expansion of macro ‘rb_define_method’
[    8s]   531 |     rb_define_method(c_augeas, "rm", augeas_rm, 1);
[    8s]       |     ^~~~~~~~~~~~~~~~
[    8s] /usr/include/ruby-3.3.0/ruby/internal/anyargs.h:277:21: note: expected ‘VALUE (*)(VALUE,  VALUE)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int)’} but argument is of type ‘VALUE (*)(VALUE,  VALUE,  VALUE)’ {aka ‘long unsigned int (*)(long unsigned int,  long unsigned int,  long unsigned int)’}
[    8s]   277 | RBIMPL_ANYARGS_DECL(rb_define_method, VALUE, const char *)
[    8s]       |                     ^~~~~~~~~~~~~~~~
[    8s] /usr/include/ruby-3.3.0/ruby/internal/anyargs.h:256:41: note: in definition of macro ‘RBIMPL_ANYARGS_DECL’
[    8s]   256 | RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _01(__VA_ARGS__, VALUE(*)(VALUE, VALUE), int); \
[    8s]       |                                         ^~~
Comment 1 Martin Jambor 2024-07-26 12:31:53 UTC
Apparently I have already filed a bug for this.

*** This bug has been marked as a duplicate of bug 1225925 ***