wiki:gcc14-todo

PART I - GCC 14 self-contained change

Build GCC itself as PIE

Investigate the performance impact of --enable-host-pie. Enable it in chapter 8 if the impact is acceptable.

(I cannot notice a performance impact, but I've not really measured SBU.)

New test failures

PART II - Some packages may need an adaption with GCC 14

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

Serious issues marked as bold.

Expect (5.45.4)

FTBFS with configure: error: could not find source file 'pty_.c'.

https://www.linuxfromscratch.org/patches/downloads/expect/expect-5.45.4-gcc14-1.patch

Libxcrypt (4.4.36)

Fails to probe the <ucontext.h> header: https://github.com/besser82/libxcrypt/pull/178

It causes test/explicit-bzero skipped. Not a serious issue and we can ignore.

Bash (5.2.21 + upstream_fixes-1.patch)

a. Wrong probing of dup2

https://lists.gnu.org/archive/html/bug-bash/2023-02/msg00000.html

Not really harming, the probing result still happens to be correct.

b. Wrong probing of strtold

https://lists.gnu.org/archive/html/bug-bash/2023-11/msg00104.html

Real issue. Causing multiple test failures (for e.g. "printf %.4f 1" outputs "0.0000").

Workaround: bash_cv_strtold_broken=no (for safety better include it in chapter 6 too, besides chapter 8).

Libtool (2.4.7)

https://lists.gnu.org/archive/html/libtool-patches/2023-01/msg00000.html

"107: lt_dlopen archive" skipped. Not a serious issue.

Inetutils (2.5)

FTBFS:

telnet.c: In function 'init_term':
telnet.c:767:9: error: implicit declaration of function 'tgetent'; did you mean 'getenv'? [-Wimplicit-function-declaration]
  767 |   err = tgetent (termbuf, tname);
      |         ^~~~~~~
      |         getenv

https://savannah.gnu.org/bugs/index.php?65263

Currently we can work around by sed 's/def HAVE_TERMCAP_TGETENT/ 1/' -i telnet/telnet.c.

Automake (1.16.5)

52 tests fail. They seem test-suite-only issue (see patches in https://src.fedoraproject.org/rpms/automake/tree/182bffe0).

Elfutils (0.190)

Fixed with 0.191.

https://sourceware.org/pipermail/elfutils-devel/2023q4/006750.html

make check fail early so impossible to test:

elfstrmerge.c: In function 'main':
elfstrmerge.c:450:32: error: 'calloc' sizes specified with 'sizeof' in the earlier argument and not in the later argument [-Werror=calloc-transposed-args]
  450 |   newscnbufs = calloc (sizeof (void *), newshnums);
      |                                ^~~~
elfstrmerge.c:450:32: note: earlier argument should specify number of elements, later size of each element

Fix: sed '/calloc/s/(\(.*\), \(.*\))/(\2, \1)/' -i tests/elfstrmerge.c

Libffi (3.4.4)

Fixed with 3.4.6.

FTBFS:

../src/tramp.c: In function 'ffi_tramp_get_temp_file':
../src/tramp.c:262:22: error: implicit declaration of function 'open_temp_exec_file' [-Wimplicit-function-declaration]
  262 |   tramp_globals.fd = open_temp_exec_file ();
      |                      ^~~~~~~~~~~~~~~~~~~

Patch: https://github.com/libffi/libffi/commit/ce077e5565366171aa1b4438749b0922fce887a4.diff

(We may work around with CC="gcc -std=gnu89" but I think it's a bad idea.)

Last modified 8 months ago Last modified on 05/09/2024 04:01:46 AM
Note: See TracWiki for help on using the wiki.