[DRE-maint] Bug#1075482: ruby-unicode: ftbfs with GCC-14

Matthias Klose doko at debian.org
Wed Jul 3 13:43:14 BST 2024


Package: src:ruby-unicode
Version: 0.4.4.4-1
Severity: important
Tags: sid trixie
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-14

[This bug is targeted to the upcoming trixie release]

Please keep this issue open in the bug tracker for the package it
was filed for.  If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.

The package fails to build in a test rebuild on at least amd64 with
gcc-14/g++-14, but succeeds to build with gcc-13/g++-13. The
severity of this report will be raised before the trixie release.

The full build log can be found at:
http://qa-logs.debian.net/2024/07/01/ruby-unicode_0.4.4.4-1_unstable_gccexp.log
The last lines of the build log are at the end of this report.

To build with GCC 14, either set CC=gcc-14 CXX=g++-14 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=experimental install g++ 

Common build failures are new warnings resulting in build failures with
-Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-14/porting_to.html

[...]
unicode.c: In function ‘unicode_get_categories’:
unicode.c:1039:20: error: passing argument 1 of ‘rb_ensure’ from incompatible pointer type [-Wincompatible-pointer-types]
 1039 |   return rb_ensure(get_categories_internal, (VALUE)&param,
      |                    ^~~~~~~~~~~~~~~~~~~~~~~
      |                    |
      |                    VALUE (*)(get_categories_param *) {aka long unsigned int (*)(struct _get_categories_param *)}
In file included from /usr/include/ruby-3.1.0/ruby/ruby.h:40:
/usr/include/ruby-3.1.0/ruby/internal/iterator.h:425:25: note: expected ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’} but argument is of type ‘VALUE (*)(get_categories_param *)’ {aka ‘long unsigned int (*)(struct _get_categories_param *)’}
  425 | VALUE rb_ensure(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*e_proc)(VALUE), VALUE data2);
      |                 ~~~~~~~~^~~~~~~~~~~~~~
unicode.c:1040:20: error: passing argument 3 of ‘rb_ensure’ from incompatible pointer type [-Wincompatible-pointer-types]
 1040 |                    get_categories_ensure, (VALUE)&wstr);
      |                    ^~~~~~~~~~~~~~~~~~~~~
      |                    |
      |                    VALUE (*)(WString *) {aka long unsigned int (*)(struct _WString *)}
/usr/include/ruby-3.1.0/ruby/internal/iterator.h:425:62: note: expected ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’} but argument is of type ‘VALUE (*)(WString *)’ {aka ‘long unsigned int (*)(struct _WString *)’}
  425 | VALUE rb_ensure(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*e_proc)(VALUE), VALUE data2);
      |                                                      ~~~~~~~~^~~~~~~~~~~~~~
unicode.c: In function ‘unicode_get_abbr_categories’:
unicode.c:1057:20: error: passing argument 1 of ‘rb_ensure’ from incompatible pointer type [-Wincompatible-pointer-types]
 1057 |   return rb_ensure(get_categories_internal, (VALUE)&param,
      |                    ^~~~~~~~~~~~~~~~~~~~~~~
      |                    |
      |                    VALUE (*)(get_categories_param *) {aka long unsigned int (*)(struct _get_categories_param *)}
/usr/include/ruby-3.1.0/ruby/internal/iterator.h:425:25: note: expected ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’} but argument is of type ‘VALUE (*)(get_categories_param *)’ {aka ‘long unsigned int (*)(struct _get_categories_param *)’}
  425 | VALUE rb_ensure(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*e_proc)(VALUE), VALUE data2);
      |                 ~~~~~~~~^~~~~~~~~~~~~~
unicode.c:1058:20: error: passing argument 3 of ‘rb_ensure’ from incompatible pointer type [-Wincompatible-pointer-types]
 1058 |                    get_categories_ensure, (VALUE)&wstr);
      |                    ^~~~~~~~~~~~~~~~~~~~~
      |                    |
      |                    VALUE (*)(WString *) {aka long unsigned int (*)(struct _WString *)}
/usr/include/ruby-3.1.0/ruby/internal/iterator.h:425:62: note: expected ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’} but argument is of type ‘VALUE (*)(WString *)’ {aka ‘long unsigned int (*)(struct _WString *)’}
  425 | VALUE rb_ensure(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*e_proc)(VALUE), VALUE data2);
      |                                                      ~~~~~~~~^~~~~~~~~~~~~~
unicode.c: In function ‘unicode_get_text_elements’:
unicode.c:1227:20: error: passing argument 1 of ‘rb_ensure’ from incompatible pointer type [-Wincompatible-pointer-types]
 1227 |   return rb_ensure(get_text_elements_internal, (VALUE)&param,
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |                    |
      |                    VALUE (*)(get_text_elements_param *) {aka long unsigned int (*)(struct _get_text_elements_param *)}
/usr/include/ruby-3.1.0/ruby/internal/iterator.h:425:25: note: expected ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’} but argument is of type ‘VALUE (*)(get_text_elements_param *)’ {aka ‘long unsigned int (*)(struct _get_text_elements_param *)’}
  425 | VALUE rb_ensure(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*e_proc)(VALUE), VALUE data2);
      |                 ~~~~~~~~^~~~~~~~~~~~~~
unicode.c:1228:20: error: passing argument 3 of ‘rb_ensure’ from incompatible pointer type [-Wincompatible-pointer-types]
 1228 |                    get_text_elements_ensure, (VALUE)&wstr);
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~
      |                    |
      |                    VALUE (*)(WString *) {aka long unsigned int (*)(struct _WString *)}
/usr/include/ruby-3.1.0/ruby/internal/iterator.h:425:62: note: expected ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’} but argument is of type ‘VALUE (*)(WString *)’ {aka ‘long unsigned int (*)(struct _WString *)’}
  425 | VALUE rb_ensure(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*e_proc)(VALUE), VALUE data2);
      |                                                      ~~~~~~~~^~~~~~~~~~~~~~
make[1]: *** [Makefile:246: unicode.o] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>/ext/unicode'
/usr/lib/ruby/vendor_ruby/gem2deb.rb:52:in `run': /usr/bin/ruby3.1 /usr/lib/ruby/vendor_ruby/gem2deb/extension_builder.rb /<<PKGBUILDDIR>> debian/ruby-unicode (Gem2Deb::CommandFailed)
	from /usr/lib/ruby/vendor_ruby/gem2deb.rb:64:in `block in run_ruby'
	from /usr/lib/ruby/vendor_ruby/gem2deb.rb:87:in `maybe_crossbuild'
	from /usr/lib/ruby/vendor_ruby/gem2deb.rb:63:in `run_ruby'
	from /usr/lib/ruby/vendor_ruby/gem2deb/installer.rb:57:in `block in install_files_and_build_extensions'
	from /usr/lib/ruby/vendor_ruby/gem2deb/installer.rb:54:in `each'
	from /usr/lib/ruby/vendor_ruby/gem2deb/installer.rb:54:in `install_files_and_build_extensions'
	from /usr/lib/ruby/vendor_ruby/gem2deb/installer.rb:28:in `build'
	from /usr/lib/ruby/vendor_ruby/gem2deb/dh_ruby.rb:54:in `block in install'
	from /usr/lib/ruby/vendor_ruby/gem2deb/dh_ruby.rb:52:in `each'
	from /usr/lib/ruby/vendor_ruby/gem2deb/dh_ruby.rb:52:in `install'
	from /usr/lib/ruby/vendor_ruby/gem2deb/dh_ruby.rb:163:in `install'
	from /usr/bin/dh_ruby:89:in `<main>'
dh_auto_install: error: dh_ruby --install /<<PKGBUILDDIR>>/debian/ruby-unicode returned exit code 1
make: *** [debian/rules:15: binary] Error 25
dpkg-buildpackage: error: fakeroot debian/rules binary subprocess returned exit status 2



More information about the Pkg-ruby-extras-maintainers mailing list