Bug #18046
Updated by kou (Kouhei Sutou) about 3 years ago
I was testing out my code on a CI and I noticed that the build broke with some compile errors. I reported it to the ruby-gnome project, and they think it's a missing include. Here's that bug: https://github.com/ruby-gnome/ruby-gnome/issues/1430 Here is the relevant snippet on the failure: ```text current directory: /home/runner/.rubies/ruby-head/lib/ruby/gems/3.1.0/gems/glib2-3.4.6/ext/glib2 make DESTDIR\= compiling glib-enum-types.c glib-enum-types.c: In function ‘g_spawn_error_get_type’: glib-enum-types.c:632:7: warning: ‘G_SPAWN_ERROR_2BIG’ is deprecated: Use 'G_SPAWN_ERROR_TOO_BIG' instead [-Wdeprecated-declarations] 632 | { G_SPAWN_ERROR_2BIG, "G_SPAWN_ERROR_2BIG", "2big" }, | ^ In file included from /usr/include/glib-2.0/glib.h:81, from /usr/include/glib-2.0/gobject/gbinding.h:28, from /usr/include/glib-2.0/glib-object.h:22, from rbgobject.h:24, from rbgprivate.h:32, from glib-enum-types.c:4: /usr/include/glib-2.0/glib/gspawn.h:76:3: note: declared here 76 | G_SPAWN_ERROR_2BIG GLIB_DEPRECATED_ENUMERATOR_IN_2_32_FOR(G_SPAWN_ERROR_TOO_BIG) = G_SPAWN_ERROR_TOO_BIG, | ^~~~~~~~~~~~~~~~~~ glib-enum-types.c: At top level: cc1: warning: unrecognized command line option ‘-Wno-self-assign’ cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’ cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ compiling rbglib-bytes.c compiling rbglib-gc.c compiling rbglib-variant-type.c compiling rbglib-variant.c compiling rbglib.c compiling rbglib_bookmarkfile.c compiling rbglib_convert.c compiling rbglib_datetime.c compiling rbglib_error.c compiling rbglib_fileutils.c compiling rbglib_gettext.c compiling rbglib_i18n.c compiling rbglib_int64.c compiling rbglib_io_constants.c compiling rbglib_iochannel.c compiling rbglib_iochannel_win32_socket.c compiling rbglib_iochannelerror.c compiling rbglib_keyfile.c compiling rbglib_maincontext.c compiling rbglib_mainloop.c compiling rbglib_matchinfo.c compiling rbglib_messages.c rbglib_messages.c: In function ‘rbglib_log_handler’: rbglib_messages.c:76:13: warning: ‘rb_iterate’ is deprecated: by: rb_block_call since 1.9 [-Wdeprecated-declarations] 76 | rb_iterate(rb_each, backtrace, | ^~~~~~~~~~ In file included from /home/runner/.rubies/ruby-head/include/ruby-3.1.0/ruby/defines.h:73, from /home/runner/.rubies/ruby-head/include/ruby-3.1.0/ruby/ruby.h:23, from /home/runner/.rubies/ruby-head/include/ruby-3.1.0/ruby.h:39, from rbgobject.h:25, from rbgprivate.h:32, from rbglib_messages.c:25: /home/runner/.rubies/ruby-head/include/ruby-3.1.0/ruby/internal/iterator.h:48:46: note: declared here 48 | DEPRECATED_BY(rb_block_call since 1.9, VALUE rb_iterate(VALUE(*)(VALUE),VALUE,rb_block_call_func_t,VALUE)); | ^~~~~~~~~~ /home/runner/.rubies/ruby-head/include/ruby-3.1.0/ruby/backward/2/attributes.h:60:65: note: in definition of macro ‘DEPRECATED_BY’ 60 | #define DEPRECATED_BY(n,x) RBIMPL_ATTR_DEPRECATED(("by: " # n)) x | ^ rbglib_messages.c: At top level: cc1: warning: unrecognized command line option ‘-Wno-self-assign’ cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’ cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ compiling rbglib_pollfd.c compiling rbglib_regex.c compiling rbglib_shell.c compiling rbglib_shellerror.c compiling rbglib_source.c compiling rbglib_spawn.c compiling rbglib_spawnerror.c compiling rbglib_threads.c compiling rbglib_timer.c compiling rbglib_timezone.c compiling rbglib_ucs4.c compiling rbglib_unichar.c compiling rbglib_unicode.c compiling rbglib_utf16.c compiling rbglib_utf8.c compiling rbglib_utils.c compiling rbglib_win32.c compiling rbglibdeprecated.c compiling rbgobj_binding.c compiling rbgobj_boxed.c compiling rbgobj_closure.c compiling rbgobj_convert.c compiling rbgobj_enumflags.c compiling rbgobj_enums.c compiling rbgobj_flags.c compiling rbgobj_object.c rbgobj_object.c: In function ‘gobj_new_body’: rbgobj_object.c:367:5: warning: ‘rb_iterate’ is deprecated: by: rb_block_call since 1.9 [-Wdeprecated-declarations] 367 | rb_iterate(rb_each, (VALUE)arg->params_hash, _params_setup, (VALUE)arg); | ^~~~~~~~~~ In file included from /home/runner/.rubies/ruby-head/include/ruby-3.1.0/ruby/defines.h:73, from /home/runner/.rubies/ruby-head/include/ruby-3.1.0/ruby/ruby.h:23, from /home/runner/.rubies/ruby-head/include/ruby-3.1.0/ruby.h:39, from rbgobject.h:25, from rbgprivate.h:32, from rbgobj_object.c:25: /home/runner/.rubies/ruby-head/include/ruby-3.1.0/ruby/internal/iterator.h:48:46: note: declared here 48 | DEPRECATED_BY(rb_block_call since 1.9, VALUE rb_iterate(VALUE(*)(VALUE),VALUE,rb_block_call_func_t,VALUE)); | ^~~~~~~~~~ /home/runner/.rubies/ruby-head/include/ruby-3.1.0/ruby/backward/2/attributes.h:60:65: note: in definition of macro ‘DEPRECATED_BY’ 60 | #define DEPRECATED_BY(n,x) RBIMPL_ATTR_DEPRECATED(("by: " # n)) x | ^ rbgobj_object.c: At top level: cc1: warning: unrecognized command line option ‘-Wno-self-assign’ cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’ cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ compiling rbgobj_param.c compiling rbgobj_paramspecs.c compiling rbgobj_signal.c In file included from rbgobject.h:26, from rbgprivate.h:32, from rbgobj_signal.c:22: rbgobj_signal.c: In function ‘gobj_s_signal_handler_attach’: rbglib.h:91:22: warning: initialization of ‘VALUE’ {aka ‘long unsigned int’} from ‘const gchar *’ {aka ‘const char *’} makes integer from pointer without a cast [-Wint-conversion] 91 | #define RVAL2CSTR(v) (rbg_rval2cstr(&(v))) | ^ rbgobj_signal.c:722:26: note: in expansion of macro ‘RVAL2CSTR’ 722 | VALUE handler_name = RVAL2CSTR(rb_handler_name); | ^~~~~~~~~ rbgobj_signal.c:727:34: warning: passing argument 2 of ‘g_rclosure_set_tag’ makes pointer from integer without a cast [-Wint-conversion] 727 | g_rclosure_set_tag(rclosure, handler_name); | ^~~~~~~~~~~~ | | | VALUE {aka long unsigned int} In file included from rbgprivate.h:32, from rbgobj_signal.c:22: rbgobject.h:240:64: note: expected ‘const gchar *’ {aka ‘const char *’} but argument is of type ‘VALUE’ {aka ‘long unsigned int’} 240 | extern void g_rclosure_set_tag(GClosure *closure, const gchar *tag); | ~~~~~~~~~~~~~^~~ rbgobj_signal.c:734:32: warning: passing argument 2 of ‘rbg_define_method’ makes pointer from integer without a cast [-Wint-conversion] 734 | rbg_define_method(mod, handler_name, gobj_sig_chain_from_overridden, -1); | ^~~~~~~~~~~~ | | | VALUE {aka long unsigned int} In file included from rbgobject.h:27, from rbgprivate.h:32, from rbgobj_signal.c:22: rbgutil.h:90:56: note: expected ‘const char *’ but argument is of type ‘VALUE’ {aka ‘long unsigned int’} 90 | extern void rbg_define_method(VALUE klass, const char *name, VALUE (*func)(ANYARGS), int argc); | ~~~~~~~~~~~~^~~~ rbgobj_signal.c: At top level: cc1: warning: unrecognized command line option ‘-Wno-self-assign’ cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’ cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ compiling rbgobj_strv.c compiling rbgobj_type.c compiling rbgobj_typeinstance.c compiling rbgobj_typeinterface.c compiling rbgobj_typemodule.c compiling rbgobj_typeplugin.c compiling rbgobj_value.c compiling rbgobj_valuetypes.c compiling rbgobject.c compiling rbgutil.c compiling rbgutil_callback.c In file included from /home/runner/.rubies/ruby-head/include/ruby-3.1.0/ruby/intern.h:59, from /home/runner/.rubies/ruby-head/include/ruby-3.1.0/ruby/ruby.h:101, from /home/runner/.rubies/ruby-head/include/ruby-3.1.0/ruby.h:39, from rbgobject.h:25, from rbgprivate.h:32, from rbgutil_callback.c:21: rbgutil_callback.c: In function ‘mainloop’: /home/runner/.rubies/ruby-head/include/ruby-3.1.0/ruby/internal/intern/thread.h:34:31: warning: implicit declaration of function ‘rb_wait_for_single_fd’ [-Wimplicit-function-declaration] 34 | #define rb_thread_wait_fd(fd) rb_wait_for_single_fd((fd), RUBY_IO_READABLE, NULL) | ^~~~~~~~~~~~~~~~~~~~~ rbgutil_callback.c:102:9: note: in expansion of macro ‘rb_thread_wait_fd’ 102 | rb_thread_wait_fd(callback_pipe_fds[0]); | ^~~~~~~~~~~~~~~~~ /home/runner/.rubies/ruby-head/include/ruby-3.1.0/ruby/internal/intern/thread.h:34:31: warning: nested extern declaration of ‘rb_wait_for_single_fd’ [-Wnested-externs] 34 | #define rb_thread_wait_fd(fd) rb_wait_for_single_fd((fd), RUBY_IO_READABLE, NULL) | ^~~~~~~~~~~~~~~~~~~~~ rbgutil_callback.c:102:9: note: in expansion of macro ‘rb_thread_wait_fd’ 102 | rb_thread_wait_fd(callback_pipe_fds[0]); | ^~~~~~~~~~~~~~~~~ /home/runner/.rubies/ruby-head/include/ruby-3.1.0/ruby/internal/intern/thread.h:34:59: error: ‘RUBY_IO_READABLE’ undeclared (first use in this function) 34 | #define rb_thread_wait_fd(fd) rb_wait_for_single_fd((fd), RUBY_IO_READABLE, NULL) | ^~~~~~~~~~~~~~~~ rbgutil_callback.c:102:9: note: in expansion of macro ‘rb_thread_wait_fd’ 102 | rb_thread_wait_fd(callback_pipe_fds[0]); | ^~~~~~~~~~~~~~~~~ /home/runner/.rubies/ruby-head/include/ruby-3.1.0/ruby/internal/intern/thread.h:34:59: note: each undeclared identifier is reported only once for each function it appears in 34 | #define rb_thread_wait_fd(fd) rb_wait_for_single_fd((fd), RUBY_IO_READABLE, NULL) | ^~~~~~~~~~~~~~~~ rbgutil_callback.c:102:9: note: in expansion of macro ‘rb_thread_wait_fd’ 102 | rb_thread_wait_fd(callback_pipe_fds[0]); | ^~~~~~~~~~~~~~~~~ rbgutil_callback.c: At top level: cc1: warning: unrecognized command line option ‘-Wno-self-assign’ cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’ cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ make: *** [Makefile:246: rbgutil_callback.o] Error 1 make failed, exit code 2 Gem files will remain installed in /home/runner/.rubies/ruby-head/lib/ruby/gems/3.1.0/gems/glib2-3.4.6 for inspection. Results logged to /home/runner/.rubies/ruby-head/lib/ruby/gems/3.1.0/extensions/x86_64-linux/3.1.0/glib2-3.4.6/gem_make.out An error occurred while installing glib2 (3.4.6), and Bundler cannot continue. Make sure that `gem install glib2 -v '3.4.6' --source 'https://rubygems.org/'` succeeds before bundling. ```