Bug 1445536 - Add a toolchain job for GCC 7. r?build
And adapt the build-gcc.sh script for the changes to
contrib/download_prerequisites.
--- a/build/unix/build-gcc/build-gcc.sh
+++ b/build/unix/build-gcc/build-gcc.sh
@@ -24,37 +24,49 @@ prepare() {
cd gcc-$gcc_version
(
# Divert commands that download_prerequisites use
ln() { :; }
tar() { :; }
sed() { :; }
wget() {
- echo $1
+ # Get last argument given to wget.
+ eval echo \$$# >&3
}
+ # In GCC >= 7, the download_prerequisites script tried to do its own
+ # verification, but we have ours, so disable it.
+ set -- --no-verify
. ./contrib/download_prerequisites
- ) | while read url; do
+ ) 3>&1 > /dev/null | while read url; do
file=$(basename $url)
case "$file" in
gmp-*.tar.*)
# If download_prerequisites wants 4.3.2, use 5.1.3 instead.
file=${file/4.3.2/5.1.3}
download_and_check https://gmplib.org/download/gmp $file.sig
;;
mpfr-*.tar.*)
# If download_prerequisites wants 2.4.2, use 3.1.5 instead.
file=${file/2.4.2/3.1.5}
download_and_check http://www.mpfr.org/${file%.tar.*} $file.asc
;;
mpc-*.tar.*)
# If download_prerequisites wants 0.8.1, use 0.8.2 instead.
file=${file/0.8.1/0.8.2}
- download_and_check http://www.multiprecision.org/downloads $file.asc
+ case "$file" in
+ *-0.8.2.tar*|*-0.9.tar*|*-1.0.tar*)
+ ext=asc
+ ;;
+ *)
+ ext=sig
+ ;;
+ esac
+ download_and_check http://www.multiprecision.org/downloads $file.$ext
;;
*)
download $(dirname $url) $file
;;
esac
tar xaf $TMPDIR/$file
ln -sf ${file%.tar.*} ${file%-*}
done
--- a/taskcluster/ci/toolchain/linux.yml
+++ b/taskcluster/ci/toolchain/linux.yml
@@ -175,16 +175,33 @@ linux64-gcc-6:
run:
using: toolchain-script
script: build-gcc-6-linux.sh
resources:
- 'build/unix/build-gcc/build-gcc.sh'
toolchain-alias: linux64-gcc
toolchain-artifact: public/build/gcc.tar.xz
+linux64-gcc-7:
+ description: "GCC 7 toolchain build"
+ treeherder:
+ kind: build
+ platform: toolchains/opt
+ symbol: TL(gcc7)
+ tier: 1
+ worker-type: aws-provisioner-v1/gecko-{level}-b-linux
+ worker:
+ max-run-time: 36000
+ run:
+ using: toolchain-script
+ script: build-gcc-7-linux.sh
+ resources:
+ - 'build/unix/build-gcc/build-gcc.sh'
+ toolchain-artifact: public/build/gcc.tar.xz
+
linux64-sixgill:
description: "sixgill GCC plugin build"
treeherder:
kind: build
platform: toolchains/opt
symbol: TL(sixgill)
tier: 1
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
copy from taskcluster/scripts/misc/build-gcc-6-linux.sh
copy to taskcluster/scripts/misc/build-gcc-7-linux.sh
--- a/taskcluster/scripts/misc/build-gcc-6-linux.sh
+++ b/taskcluster/scripts/misc/build-gcc-7-linux.sh
@@ -1,23 +1,23 @@
#!/bin/bash
set -e
-# This script is for building GCC 6 for Linux.
+# This script is for building GCC 7 for Linux.
WORKSPACE=$HOME/workspace
HOME_DIR=$WORKSPACE/build
UPLOAD_DIR=$HOME/artifacts
root_dir=$HOME_DIR
data_dir=$HOME_DIR/src/build/unix/build-gcc
. $data_dir/build-gcc.sh
-gcc_version=6.4.0
+gcc_version=7.3.0
gcc_ext=xz
binutils_version=2.25.1
binutils_ext=bz2
# GPG key used to sign GCC
$GPG --import $data_dir/13975A70E63C361C73AE69EF6EEB81F8981C74C7.key
# GPG key used to sign binutils
$GPG --import $data_dir/EAF1C276A747E9ED86210CBAC3126D3B4AE55E93.key
@@ -25,21 +25,21 @@ binutils_ext=bz2
$GPG --import $data_dir/343C2FF0FBEE5EC2EDBEF399F3599FF828C67298.key
# GPG key used to sign MPFR
$GPG --import $data_dir/07F3DBBECC1A39605078094D980C197698C3739D.key
# GPG key used to sign MPC
$GPG --import $data_dir/AD17A21EF8AED8F1CC02DBD9F7D5C9BF765C61E3.key
cat > $HOME_DIR/checksums <<EOF
b5b14added7d78a8d1ca70b5cb75fef57ce2197264f4f5835326b0df22ac9f22 binutils-2.25.1.tar.bz2
-850bf21eafdfe5cd5f6827148184c08c4a0852a37ccf36ce69855334d2c914d4 gcc-6.4.0.tar.xz
-752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160 gmp-5.1.3.tar.bz2
-8ceebbf4d9a81afa2b4449113cee4b7cb14a687d7a549a963deb5e2a41458b6b isl-0.15.tar.bz2
-ae79f8d41d8a86456b68607e9ca398d00f8b7342d1d83bcf4428178ac45380c7 mpc-0.8.2.tar.gz
-ca498c1c7a74dd37a576f353312d1e68d490978de4395fa28f1cbd46a364e658 mpfr-3.1.5.tar.bz2
+832ca6ae04636adbb430e865a1451adf6979ab44ca1c8374f61fba65645ce15c gcc-7.3.0.tar.xz
+498449a994efeba527885c10405993427995d3f86b8768d8cdf8d9dd7c6b73e8 gmp-6.1.0.tar.bz2
+412538bb65c799ac98e17e8cfcdacbb257a57362acfaaff254b0fcae970126d2 isl-0.16.1.tar.bz2
+617decc6ea09889fb08ede330917a00b16809b8db88c29c31bfbb49cbf88ecc3 mpc-1.0.3.tar.gz
+d3103a80cdad2407ed581f3618c4bed04e0c92d1cf771a65ead662cc397f7775 mpfr-3.1.4.tar.bz2
EOF
prepare
build_binutils
build_gcc
# Put a tarball in the artifacts dir
mkdir -p $UPLOAD_DIR