Hideki Yamane dixit: > Hookdir cannot satisfy its purpose - build with gcc, then check with clang, > back to gcc, and use clang again... - if we choose using hookdir, we should > add script to hookdir then remove it every time, it's not handy and doesn't > encourage maintainers to check with clang.
It can… I’m thinking of something like this (untested): (cat >hookdir/D60clang; chmod +x hookdir/D60compiler) <<'EOF' #!/bin/sh set +e # check whether we are asked to change the compiler case $PBUILDER_COMPILER in (clang|tcc) replace_gcc=1 ;; (gcc-*) replace_gcc=0 ;; (*) exit 0 ;; esac apt-get -y --force-yes --purge install "$PBUILDER_COMPILER" || { echo >&2 "E: Installing the compiler '$PBUILDER_COMPILER' failed" exit 1 } test -x /usr/bin/"$PBUILDER_COMPILER" || { echo >&2 "E: Package '$PBUILDER_COMPILER' does not contain compiler driver?" exit 1 } newcc=/usr/bin/$PBUILDER_COMPILER case $PBUILDER_COMPILER in (clang) newcxx=/usr/bin/clang++ ;; (tcc) newcxx=/bin/false ;; (gcc-*) newcxx=/usr/bin/g++${PBUILDER_COMPILER#gcc} ;; (*) # cannot happen exit 255 esac if test 1 = $replace_gcc; then e=0 oldcc=$(readlink /usr/bin/gcc) || e=1 oldcxx=$(readlink /usr/bin/g++) || e=1 case $oldcc in (/usr/bin/gcc-*) oldcc=${oldcc#/usr/bin/} ;; (gcc-*) ;; (*) e=1 ; esac case $oldcxx in (/usr/bin/g++-*) oldcxx=${oldcxx#/usr/bin/} ;; (gcc-*) ;; (*) e=1 ; esac if test 1 = $e; then echo >&2 "E: Old compilers ('$oldcc', '$oldcxx') do not match gcc-defaults" exit 1 fi rm -f /usr/bin/"$oldcc" /usr/bin/"$oldcxx" ln -s "$newcc" /usr/bin/"$oldcc" ln -s "$newcxx" /usr/bin/"$oldcxx" fi rm -f /usr/bin/gcc /usr/bin/g++ ln -s "$newcc" /usr/bin/gcc ln -s "$newcxx" /usr/bin/g++ rm -f /usr/bin/cc /usr/bin/++ ln -s "$newcc" /usr/bin/cc ln -s "$newcxx" /usr/bin/c++ exit 0 EOF This would allow switching to any gcc version, tcc and clang; adding pcc, TenDRA and other compilers is surely possible, and this hook script is controlled by $PBUILDER_COMPILER which you can just export before calling pbuilder/cowbuilder. bye, //mirabilos -- <mirabilos> │ untested <Natureshadow> │ tut natürlich <Natureshadow> │ was auch sonst ... <mirabilos> │ fijn ☺ -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org