[FIX] gcc: libquadmath does not exist on s390x; python alias for util-linux

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
This commit is contained in:
Mathieu Benoit 2026-08-16 19:52:55 -04:00
parent bcc6d63bed
commit dc0f38987e

View file

@ -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