[FIX] gcc: do not rewrite the libgccjit language list
The PKGBUILD configures gcc twice: once for the compiler, once for libgccjit with --enable-languages=jit. The hook rewrote every occurrence, so the second tree built a compiler instead of a library and package() died on cp: cannot stat 'gcc/libgccjit.so*': No such file or directory after forty minutes of compiling -- the worst kind of failure, at the very end, from a patch that looked right. The sed now skips any line containing jit. A patch that rewrites "every occurrence" of anything in a PKGBUILD should be suspected by default: these files configure the same source tree several times, for different outputs. --- FR --- Le PKGBUILD configure gcc deux fois : une fois pour le compilateur, une fois pour libgccjit avec --enable-languages=jit. Le crochet reecrivait toutes les occurrences, si bien que le second arbre batissait un compilateur au lieu d une bibliotheque, et package() mourait sur cp: cannot stat 'gcc/libgccjit.so*': No such file or directory apres quarante minutes de compilation -- le pire genre d echec, tout a la fin, venu d un correctif qui semblait juste. Le sed ecarte desormais toute ligne contenant jit. Un correctif qui reecrit « toutes les occurrences » de quoi que ce soit dans un PKGBUILD doit etre suspecte d office : ces fichiers configurent plusieurs fois le meme arbre source, pour des sorties differentes. Assisted-by: Claude Opus 5
This commit is contained in:
parent
a61890d83a
commit
63be2a7990
1 changed files with 7 additions and 1 deletions
|
|
@ -26,7 +26,13 @@
|
|||
# removals are permanent -- they are architectural.
|
||||
set -euo pipefail
|
||||
|
||||
sed -i 's/^\(\s*--enable-languages=\).*\\$/\1c,c++,fortran,lto,objc,obj-c++ \\/' PKGBUILD
|
||||
# Only the MAIN build. The PKGBUILD configures gcc twice: once for the
|
||||
# compiler, once for libgccjit with --enable-languages=jit. Rewriting
|
||||
# every occurrence clobbered the second one, so the jit tree built a
|
||||
# compiler instead of a library and package() died on
|
||||
# cp: cannot stat 'gcc/libgccjit.so*': No such file or directory
|
||||
# after forty minutes of compiling. Match the language list, never 'jit'.
|
||||
sed -i '/--enable-languages=jit/!s/^\(\s*--enable-languages=\).*\\$/\1c,c++,fortran,lto,objc,obj-c++ \\/' PKGBUILD
|
||||
if grep -qE 'enable-languages=[^ ]*(ada|,d,|m2|cobol)' PKGBUILD; then
|
||||
echo "gcc: a self-hosted front end is still enabled" >&2; exit 1
|
||||
fi
|
||||
|
|
|
|||
Loading…
Reference in a new issue