wiki:gcc14-todo

Version 10 (modified by thomas, 4 months ago) ( diff )

--

Some packages may need an adaption with GCC 14

Reference: ​https://gitlab.com/fweimer-rh/fedora-modernc

Serious issues marked as bold.

cmake (3.28.1)

https://gitlab.kitware.com/cmake/cmake/-/commit/806c40a38fc6e1996738173ecfa23a26f7502dbf

Two tests fail.

Fixed 3.28.2.

xmlto (0.0.28)

FTBFS:

xmlif/xmlif.l:46:8: error: type defaults to 'int' in declaration of 'ifsense' [-Wimplicit-int]
   46 | static ifsense;                 /* sense of last `if' or unless seen */
      |        ^~~~~~~
xmlif/xmlif.l:243:1: error: return type defaults to 'int' [-Wimplicit-int]
  243 | {
      | ^   
make[1]: *** [Makefile:741: xmlif/xmlif.o] Error 1

sed -e '/^static/s|ifsense|int &|' -e 's|^main|int &|' -i xmlif/xmlif.l

zsh (5.9)

Configure script wrongly probe things and then FTBFS:

termcap.c:45:14: error: conflicting types for 'boolcodes'; have 'char *[]'
   45 | static char *boolcodes[] = {
      |              ^~~~~~~~~
In file included from ../../Src/zshterm.h:1,
                 from ../../Src/zsh_system.h:932,
                 from ../../Src/zsh.mdh:15,
                 from termcap.mdh:15,
                 from termcap.c:38:
/usr/include/term.h:783:56: note: previous declaration of 'boolcodes' with type 'const char * const[]'
  783 | extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[];
      |                                                        ^~~~~~~~~
make[3]: *** [Makefile:230: termcap.o] Error 1

Note that simply fixing up termcap.c will cover up the real issue and produce an zsh executable hanging at runtime. The upstream changes can be done via sed:

sed -i -e 's/^main/int &/' -e 's/exit(/return(/' aczsh.m4 configure.ac
sed -i 's/test = /&(char**)/'                    configure.ac
autoreconf

aalib (1.4rc5)

FTBFS. Many issues need fix.

  • Run autoreconf to regenerate the configure script with modern autoconf.
  • Fix aatest.c, aafire.c, aasavefont.c, aainfo.c, aaregist.c, aalib.c, and aalinuxkbd.c for missing stdlib.h
  • Fix aatest.c, aaregist.c, aakbdreg.c, and aamoureg.c for missing string.h
  • Fix aaxkbd.c for missing X11/Xutil.h
  • Fix aalinuxkbd.c rawmode_init() for bad return

polkit (124)

FTBFS unless disabling test.

  • Missing prototype void print_indent(FILE *, unsigned int); in test/mocklibc/src/netgroup.h
    • Note that stdlib.h is needed for FILE.

accountservice (23.13.9)

FTBFS.

  • Same issue as polkit. Note that in accountservice mocklibc is a shipped tarball and it only gets untarred after meson setup, so the fix up needs to be placed after meson setup.

libcddb (1.3.2)

FTBFS.

  • In lib/cddb_net.c size_t l; needs to be changed to socklen_t l;

QT6 (6.7.1, maybe earlier versions, too)

FTBFS in a i686 VM.

In Datei, eingebunden von /mnt/tmp/qt6/source/qt-everywhere-src-6.7.1/qtbase/src/corelib/global/qfloat16.cpp:5:
/mnt/tmp/qt6/source/qt-everywhere-src-6.7.1/qtbase/src/corelib/global/qfloat16.h: In Elementfunktion »constexpr qfloat16::operator NativeType() const«:
/mnt/tmp/qt6/source/qt-everywhere-src-6.7.1/qtbase/src/corelib/global/qfloat16.h:80:52: Fehler: SSE-Registerrückgabe mit SSE2 ausgeschaltet
   80 |     constexpr operator NativeType() const noexcept { return nf; }
      |                                                    ^
/mnt/tmp/qt6/source/qt-everywhere-src-6.7.1/qtbase/src/corelib/global/qfloat16.h: In Funktion »qfloat16 operator+(qfloat16, qfloat16)«:
/mnt/tmp/qt6/source/qt-everywhere-src-6.7.1/qtbase/src/corelib/global/qfloat16.h:163:147: Fehler: Operation nicht erlaubt auf Typ »_Float16« ohne Option »-msse2«
  163 |     friend inline qfloat16 operator+(qfloat16 a, qfloat16 b) noexcept { return qfloat16(static_cast<NearestFloat>(a) + static_cast<NearestFloat>(b)); }
      |                                                                                                                                                

a patch using

sed -e "/^#elif defined(Q_CC_GNU_ONLY)/s/.*/& \&\& 0/" \
    -i qtbase/src/corelib/global/qtypes.h

seems to fix that. No issues on same machine with gcc-13.

Note: See TracWiki for help on using the wiki.