Bug#1086586: mdbtools: FTBFS on a few architectures: error: 'quote_char' may be used uninitialized [-Werror=maybe-uninitialized]
Source: mdbtools
Version: 1.0.0+dfsg-1.3
Severity: serious
Tags: ftbfs patch upstream
Justification: fails to build from source (but built successfully in the past)
X-Debbugs-Cc: debian-riscv@lists.debian.org
User: debian-riscv@lists.debian.org
Usertags: riscv64
Control: forwarded -1 https://github.com/mdbtools/mdbtools/pull/441
Dear maintainer,
Starting with GCC 14, mdbtools fails to build on a few architectures,
mips64el, ppc64el, riscv64 and s390x for official architectures and
loong64, powerpc, ppc64 for ports architectures:
| odbc.c: In function '_odbc_fix_literals.isra':
| odbc.c:1998:35: error: 'quote_char' may be used uninitialized [-Werror=maybe-uninitialized]
| 1998 | } else if (quoted && *s==quote_char) {
| | ~~~~~~~^~~~~~~~~~~~~~~~~
| odbc.c:1990:14: note: 'quote_char' was declared here
| 1990 | char quote_char;
| | ^~~~~~~~~~
| libtool: compile: gcc -DPACKAGE_NAME=\"mdbtools\" -DPACKAGE_TARNAME=\"mdbtools\" -DPACKAGE_VERSION=\"1.0.0\" "-DPACKAGE_STRING=\"mdbtools 1.0.0\"" -DPACKAGE_BUGREPORT=\"https://github.com/mdbtools/mdbtools/issues\" -DPACKAGE_URL=\"https://github.com/mdbtools/mdbtools\" -DPACKAGE=\"mdbtools\" -DVERSION=\"1.0.0\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DHAVE_WCHAR_H=1 -DSTDC_HEADERS=1 -D_ALL_SOURCE=1 -D_DARWIN_C_SOURCE=1 -D_GNU_SOURCE=1 -D_HPUX_ALT_XOPEN_SOCKET_API=1 -D_NETBSD_SOURCE=1 -D_OPENBSD_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D__STDC_WANT_IEC_60559_ATTRIBS_EXT__=1 -D__STDC_WANT_IEC_60559_BFP_EXT__=1 -D__STDC_WANT_IEC_60559_DFP_EXT__=1 -D__STDC_WANT_IEC_60559_EXT__=1 -D__STDC_WANT_IEC_60559_FUNCS_EXT__=1 -D__STDC_WANT_IEC_60559_TYPES_EXT__=1 -D__STDC_WANT_LIB_EXT2__=1 -D__STDC_WANT_MATH_SPEC_FUNCS__=1 -D_TANDEM_SOURCE=1 -D__EXTENSIONS__=1 -DTLS=_Thread_local -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DYYTEXT_POINTER=1 -DHAVE_FCNTL_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME=1 -DHAVE_LIBREADLINE=1 -DHAVE_READLINE_READLINE_H=1 -DHAVE_READLINE_HISTORY=1 -DHAVE_READLINE_HISTORY_H=1 -DHAVE_STRPTIME=1 -DHAVE_FMEMOPEN=1 -DHAVE_GMTIME_R=1 -DHAVE_VASPRINTF=1 -DHAVE_ATTRIBUTE_ALIAS=1 -DHAVE_ICONV=1 -DICONV_CONST= -DSIZEOF_LONG_INT=8 -DHAVE_LONG_LONG=1 -DHAVE_ODBCINST_H=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -I../../include -I/usr/include/glib-2.0 -I/usr/lib/riscv64-linux-gnu/glib-2.0/include -I/usr/include/sysprof-6 -pthread -DHAVE_GLIB=1 -DHAVE_G_MEMDUP2=1 -I/usr/include -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DSQL -Wall -Werror -c odbcw.c -o odbcw.o >/dev/null 2>&1
| cc1: all warnings being treated as errors
| make[3]: *** [Makefile:533: odbc.lo] Error 1
| make[3]: Leaving directory '/<<PKGBUILDDIR>>/src/odbc'
| make[2]: *** [Makefile:388: all-recursive] Error 1
| make[2]: Leaving directory '/<<PKGBUILDDIR>>/src'
| make[1]: *** [Makefile:486: all-recursive] Error 1
| make[1]: Leaving directory '/<<PKGBUILDDIR>>'
| dh_auto_build: error: make -j4 returned exit code 2
| make: *** [debian/rules:5: binary-arch] Error 25
| dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit status 2
A full build log is available there:
https://buildd.debian.org/status/fetch.php?pkg=mdbtools&arch=riscv64&ver=1.0.0%2Bdfsg-1.3%2Bb1&stamp=1730341733&raw=0
It appears that on those architectures, GCC 14 is unable to make the
link between the quoted and quote_char variables. A fix has already been
sent as a PR upstream:
https://github.com/mdbtools/mdbtools/pull/441
Regards,
Aurelien
Reply to: