From: Daniel Cordero <catal...@0xdc.io> On amd64 (17.1), distcc does not create /usr/lib64/distcc, despite get_libdir returning 'lib64'.
Signed-off-by: Daniel Cordero <catal...@0xdc.io> --- targets/support/chroot-functions.sh | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/targets/support/chroot-functions.sh b/targets/support/chroot-functions.sh index 2aec018e..0c77ac75 100755 --- a/targets/support/chroot-functions.sh +++ b/targets/support/chroot-functions.sh @@ -86,12 +86,14 @@ setup_features() { # This sets up automatic cross-distcc-fu according to # https://wiki.gentoo.org/wiki/Distcc/Cross-Compiling CHOST=$(portageq envvar CHOST) - LIBDIR=$(get_libdir) - cd /usr/${LIBDIR}/distcc/bin - rm cc gcc g++ c++ 2>/dev/null - echo -e '#!/bin/bash\nexec /usr/'${LIBDIR}'/distcc/bin/'${CHOST}'-g${0:$[-2]} "$@"' > ${CHOST}-wrapper - chmod a+x /usr/${LIBDIR}/distcc/bin/${CHOST}-wrapper - for i in cc gcc g++ c++; do ln -s ${CHOST}-wrapper ${i}; done + for LIBDIR in lib $(get_libdir); do + test -d /usr/${LIBDIR}/distcc/bin || continue + cd /usr/${LIBDIR}/distcc/bin + rm cc gcc g++ c++ 2>/dev/null + echo -e '#!/bin/bash\nexec /usr/'${LIBDIR}'/distcc/bin/'${CHOST}'-g${0:$[-2]} "$@"' > ${CHOST}-wrapper + chmod a+x /usr/${LIBDIR}/distcc/bin/${CHOST}-wrapper + for i in cc gcc g++ c++; do ln -s ${CHOST}-wrapper ${i}; done + done fi if [ -n "${clst_ICECREAM}" ] @@ -174,13 +176,15 @@ setup_gcc(){ } cleanup_distcc() { - LIBDIR=$(get_libdir) - rm -rf /etc/distcc/hosts - for i in cc gcc c++ g++; do - rm -f /usr/${LIBDIR}/distcc/bin/${i} - ln -s /usr/bin/distcc /usr/${LIBDIR}/distcc/bin/${i} + rm -f /etc/distcc/hosts + for LIBDIR in lib $(get_libdir); do + test -d /usr/${LIBDIR}/distcc/bin || continue + for i in cc gcc c++ g++; do + rm -f /usr/${LIBDIR}/distcc/bin/${i} + ln -s /usr/bin/distcc /usr/${LIBDIR}/distcc/bin/${i} + done + rm -f /usr/${LIBDIR}/distcc/bin/*-wrapper done - rm -f /usr/${LIBDIR}/distcc/bin/*-wrapper } cleanup_icecream() { -- 2.26.2