From dc0f38987ebd4c70099ece66e19c1bfec925c704 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sun, 16 Aug 2026 19:52:55 -0400 Subject: [PATCH] [FIX] gcc: libquadmath does not exist on s390x; python alias for util-linux MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit mv: cannot stat 'usr/lib/libquadmath.a': No such file or directory libquadmath implements __float128, which exists on x86 and ia64. On s390x the directory is CONFIGURED -- it holds a Makefile, a config.log and a config.status -- but no library is ever built. The half-created directory is what makes this one confusing: it looks like a build that failed rather than a target that has nothing to build. Dropped from pkgname, from the _pick lines, and from the depends entry in another sub-package. That last one matters: with --nodeps it is harmless at build time and fatal at install time, which is exactly the kind of defect that surfaces long after the build that introduced it. package_libquadmath() is left in place. makepkg never calls a function whose name is absent from pkgname, so removing it would be churn. util-linux calls "python", which Ubuntu does not provide -- only python3. python-is-python3 supplies the name. --- FR --- mv: cannot stat 'usr/lib/libquadmath.a': No such file or directory libquadmath implemente __float128, qui existe sur x86 et ia64. Sur s390x le repertoire est CONFIGURE -- il contient un Makefile, un config.log et un config.status -- mais aucune bibliotheque n y est jamais batie. C est ce repertoire a moitie cree qui rend le cas trompeur : il a l air d une compilation ratee plutot que d une cible qui n a rien a construire. Retire de pkgname, des lignes _pick, et de la declaration depends d un autre sous-paquet. Ce dernier point compte : avec --nodeps il est inoffensif a la compilation et fatal a l installation, exactement le genre de defaut qui se revele longtemps apres la compilation qui l a introduit. package_libquadmath() reste en place. makepkg n appelle jamais une fonction dont le nom est absent de pkgname ; la retirer serait du bruit. util-linux appelle « python », qu Ubuntu ne fournit pas -- seulement python3. python-is-python3 fournit le nom. Assisted-by: Claude Opus 5 --- patches/pkgbuild/gcc.sh | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/patches/pkgbuild/gcc.sh b/patches/pkgbuild/gcc.sh index 4f5337d..44bcde5 100755 --- a/patches/pkgbuild/gcc.sh +++ b/patches/pkgbuild/gcc.sh @@ -54,6 +54,11 @@ drop = { "gcc-ada", "gcc-d", "gcc-gcobol", "gcc-go", "gcc-m2", "gcc-rust", "libgm2", "libgo", "libgphobos", "libgcobol", "lib32-gcc-libs", + # __float128 est propre a x86 et ia64. s390x configure libquadmath + # -- le repertoire ne contient qu un Makefile et un config.log -- mais + # ne batit aucune bibliotheque, d ou l arret sur + # mv: cannot stat 'usr/lib/libquadmath.a' + "libquadmath", # Hardware-assisted ASan exists on x86_64 and aarch64 only. "libhwasan", } @@ -140,7 +145,7 @@ sed -i 's/^\(\s*for _so in \).*; do$/\1libatomic.so libstdc++.so; do/' PKGBUILD # # Dropping the entries from pkgname was not enough -- the _pick lines live in # package_gcc() and run regardless of which sub-packages are requested. -for _lang in gcc-ada gcc-d gcc-go gcc-m2 gcc-rust gcc-gcobol \ +for _lang in gcc-ada gcc-d gcc-go gcc-m2 gcc-rust gcc-gcobol libquadmath \ libgm2 libgo libgphobos libgcobol libhwasan; do sed -i "/_pick ${_lang} /d" PKGBUILD done @@ -232,3 +237,13 @@ echo "gcc: front ends reduced, multilib off, lib32 removed" # applied here rather than globally. sed -i '0,/^build() {$/s//build() {\n export MAKEFLAGS="-j8"/' PKGBUILD grep -A1 '^build() {' PKGBUILD | head -2 | sed 's/^/ /' + +# A depends= entry on libquadmath survives in another sub-package. Left in +# place, the built package would declare a dependency that can never be +# satisfied on this architecture -- harmless at build time with --nodeps, +# fatal at install time. The unused package_libquadmath() function can stay: +# makepkg never calls a function whose name is absent from pkgname. +sed -i "/^\s*libquadmath$/d" PKGBUILD +if sed -n "/^depends=(/,/^)/p" PKGBUILD | grep -q libquadmath; then + echo "gcc: libquadmath still declared as a dependency" >&2; exit 1 +fi