Bug#1075427: qdbm: ftbfs with GCC-14
Control: tag -1 patch
On Wed, Jul 03, 2024 at 12:41:30PM +0000, Matthias Klose wrote:
> Package: src:qdbm
> Version: 1.8.78-12.1
> Severity: important
> Tags: sid trixie
> User: debian-gcc@lists.debian.org
> Usertags: ftbfs-gcc-14
The actual error here is
make[1]: Entering directory '/<<PKGBUILDDIR>>/ruby/curia'
gcc -fdebug-prefix-map=/<<PKGBUILDDIR>>/ruby=. -I. -I/usr/include/x86_64-linux-gnu/ruby-3.1.0 -I/usr/include/ruby-3.1.0/ruby/backward -I/usr/include/ruby-3.1.0 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I. -I../.. -I/nonexistent/include -I/usr/local/include -o mod_curia.o -c mod_curia.c
mod_curia.c:92:1: error: return type defaults to ‘int’ [-Wimplicit-int]
92 | Init_mod_curia(){
| ^~~~~~~~~~~~~~
make[1]: *** [Makefile:253: mod_curia.o] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>/ruby/curia'
and it is fixed by declaring the Ruby extension Init_* functions as void.
Patch attached. The build succeeds for me with this on current sid.
I have not tested the resulting binaries in any way (but it looked
like the build includes a test suite of some kind.)
Hope this helps,
--
Niko Tyni ntyni@debian.org
From: Niko Tyni <ntyni@debian.org>
Date: Fri, 2 Aug 2024 18:58:34 +0100
X-Dgit-Generated: 1.8.78-12.1 107c05d8cdc8a28b0d0abd837c0abe4bef8c9f48
Subject: Mark Ruby init functions as void
This fixes building with GCC 14.
mod_curia.c:92:1: error: return type defaults to ‘int’ [-Wimplicit-int]
92 | Init_mod_curia(){
| ^~~~~~~~~~~~~~
make[1]: *** [Makefile:253: mod_curia.o] Error 1
Bug-Debian: https://bugs.debian.org/1075427
---
diff --git a/ruby/curia/mod_curia.c b/ruby/curia/mod_curia.c
index 5774ef5..de681eb 100644
--- a/ruby/curia/mod_curia.c
+++ b/ruby/curia/mod_curia.c
@@ -89,7 +89,7 @@ static VALUE rbcrfatalerror(VALUE vself, VALUE vindex);
*************************************************************************************************/
-Init_mod_curia(){
+void Init_mod_curia(){
crinit();
ccuriaerror = rb_define_class("CuriaError", rb_eStandardError);
ccuriaerror_ENOERR = rb_define_class("CuriaError_ENOERR", ccuriaerror);
diff --git a/ruby/depot/mod_depot.c b/ruby/depot/mod_depot.c
index b9f46d6..7438e62 100644
--- a/ruby/depot/mod_depot.c
+++ b/ruby/depot/mod_depot.c
@@ -88,7 +88,7 @@ static VALUE rbdpfatalerror(VALUE vself, VALUE vindex);
*************************************************************************************************/
-Init_mod_depot(){
+void Init_mod_depot(){
dpinit();
cdepoterror = rb_define_class("DepotError", rb_eStandardError);
cdepoterror_ENOERR = rb_define_class("DepotError_ENOERR", cdepoterror);
diff --git a/ruby/villa/mod_villa.c b/ruby/villa/mod_villa.c
index 80b83a0..5695b36 100644
--- a/ruby/villa/mod_villa.c
+++ b/ruby/villa/mod_villa.c
@@ -102,7 +102,7 @@ static VALUE rbvltranabort(VALUE vself, VALUE vindex);
*************************************************************************************************/
-Init_mod_villa(){
+void Init_mod_villa(){
vlinit();
cvillaerror = rb_define_class("VillaError", rb_eStandardError);
cvillaerror_ENOERR = rb_define_class("VillaError_ENOERR", cvillaerror);
Reply to: