Version 26 (modified by 7 months ago) ( diff ) | ,
---|
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
- https://gcc.gnu.org/PR112520 (test only issue)
- https://gcc.gnu.org/pipermail/gcc-patches/2024-May/650763.html (Too late for 14.1 :(, test only issue)
- https://gcc.gnu.org/PR114980
- Note that the test failures are not reproducible in LFS (due to the lack of LANG=) but reproducible in BLFS. And anyway this is a real bug.
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.)