= 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 (REASON TO BE TRIAGED???) but reproducible in BLFS. And anyway this is a real bug. - https://gcc.gnu.org/PR115001 (test only issue, only on hybrid Intel CPUs) = 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 `` 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.)