From: Kefu Chai Date: Mon, 25 Dec 2017 10:02:22 +0000 (+0800) Subject: scripts/build_utils.sh: revert to old gcc when not using ppa X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c3b5d0d68791aa81e8d5af9463285b003b3e0c9c;p=ceph-build.git scripts/build_utils.sh: revert to old gcc when not using ppa Fixes: http://tracker.ceph.com/issues/22465 Signed-off-by: Kefu Chai --- diff --git a/scripts/build_utils.sh b/scripts/build_utils.sh index 5b243ee8..8e0e68b1 100644 --- a/scripts/build_utils.sh +++ b/scripts/build_utils.sh @@ -434,30 +434,52 @@ use_ppa() { $use_ppa } -setup_pbuilder_for_ppa() { - # point gcc,g++ to the newly installed ones - local hookdir=$HOME/.pbuilder/hook.d - if ! use_ppa; then - return - fi - case $DIST in - trusty) - old=4.8;; - xenial) - old=5 - esac +setup_gcc_hook() { + new=$1 + cat < $hookdir/E05install-gcc-7 < $hookdir/E05install-gcc-7 <> \ /etc/apt/sources.list.d/ubuntu-toolchain-r.list echo "deb [arch=amd64] http://mirror.cs.uchicago.edu/ubuntu-toolchain-r $DIST main" >> \ @@ -469,27 +491,39 @@ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1E9377A2BA9EF27F apt-get -y update -o Acquire::Languages=none || true apt-get install -y g++-7 EOF + chmod +x $hookdir/E05install-gcc-7 - cat > $hookdir/E10update-gcc-alternatives < $hookdir/E10update-gcc-alternatives + chmod +x $hookdir/E10update-gcc-alternatives +} -update-alternatives --auto gcc +setup_pbuilder_for_old_gcc() { + # point gcc,g++ to the ones shipped by distro + local hookdir=$1 + case $DIST in + trusty) + old=4.8;; + xenial) + old=5;; + esac + setup_gcc_hook $old > $hookdir/D10update-gcc-alternatives + chmod +x $hookdir/D10update-gcc-alternatives +} -# cmake uses the latter by default -ln -nsf /usr/bin/gcc /usr/bin/x86_64-linux-gnu-gcc -ln -nsf /usr/bin/g++ /usr/bin/x86_64-linux-gnu-g++ -EOF - chmod +x $hookdir/E10update-gcc-alternatives +setup_pbuilder_for_ppa() { + local hookdir + if use_ppa; then + hookdir=$HOME/.pbuilder/hook.d + rm -rf $hookdir + mkdir -p $hookdir + setup_pbuilder_for_new_gcc $hookdir + else + hookdir=$HOME/.pbuilder/hook-old-gcc.d + rm -rf $hookdir + mkdir -p $hookdir + setup_pbuilder_for_old_gcc $hookdir fi + echo "HOOKDIR=$hookdir" } extra_cmake_args() {