Backed out 6 changesets (bug 1451104) for toolchains bustage on a CLOSED TREE.
authorGurzau Raul <rgurzau@mozilla.com>
Thu, 14 Mar 2019 05:02:44 +0200
changeset 524820 779dcbea91ce69857c4aa3a9d1823905cb45ee03
parent 524819 0bc302ab1f25b03e78fd4bc2443bcb0d450bfaa2
child 524821 46f6705f9c0c2c8bbd45b60615a1081f40a8402b
push id2032
push userffxbld-merge
push dateMon, 13 May 2019 09:36:57 +0000
treeherdermozilla-release@455c1065dcbe [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1451104
milestone67.0a1
backs out2f6199beeb7158f0952fd029e3262a227e176220
7c116f85ede6dc06f962ec8ac644cc2aa591f3ee
5179c80669144b6f9da38bc3c2560b1224918eaa
675f73d41eb4467f106f5c0a60043f5ec34c0ead
c64bfaad8a2f0098be09b646fd4ce4b582f12056
991777e081ffe2dfe5987e3c5a8387e095578dc7
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Backed out 6 changesets (bug 1451104) for toolchains bustage on a CLOSED TREE. Backed out changeset 2f6199beeb71 (bug 1451104) Backed out changeset 7c116f85ede6 (bug 1451104) Backed out changeset 5179c8066914 (bug 1451104) Backed out changeset 675f73d41eb4 (bug 1451104) Backed out changeset c64bfaad8a2f (bug 1451104) Backed out changeset 991777e081ff (bug 1451104)
build/autoconf/clang-plugin.m4
build/build-clang/build-clang.py
build/unix/build-gcc/build-gcc.sh
taskcluster/ci/fetch/toolchains.yml
taskcluster/ci/toolchain/clang-tidy.yml
taskcluster/ci/toolchain/clang.yml
taskcluster/ci/toolchain/gcc.yml
taskcluster/ci/toolchain/misc.yml
taskcluster/scripts/misc/build-clang-trunk-mingw.sh
taskcluster/scripts/misc/build-gcc-6-linux.sh
taskcluster/scripts/misc/build-gcc-7-linux.sh
taskcluster/scripts/misc/build-gcc-sixgill-plugin-linux.sh
--- a/build/autoconf/clang-plugin.m4
+++ b/build/autoconf/clang-plugin.m4
@@ -31,21 +31,17 @@ if test -n "$ENABLE_CLANG_PLUGIN"; then
     AC_MSG_RESULT([$LLVMCONFIG])
 
     if test -z "$LLVMCONFIG"; then
         AC_MSG_ERROR([Cannot find an llvm-config binary for building a clang plugin])
     fi
     dnl For some reason the llvm-config downloaded from clang.llvm.org for clang3_8
     dnl produces a -isysroot flag for a sysroot which might not ship when passed
     dnl --cxxflags. We use sed to remove this argument so that builds work on OSX
-    dnl
-    dnl For a similar reason, we remove any -gcc-toolchain arguments, since the
-    dnl directories specified by such arguments might not exist on the current
-    dnl machine.
-    LLVM_CXXFLAGS=`$LLVMCONFIG --cxxflags | sed -e 's/-isysroot [[^ ]]*//' -e 's/-gcc-toolchain [[^ ]]*//'`
+    LLVM_CXXFLAGS=`$LLVMCONFIG --cxxflags | sed -e 's/-isysroot [[^ ]]*//'`
 
     LLVM_LDFLAGS=`$LLVMCONFIG --ldflags | tr '\n' ' '`
 
     if test "${HOST_OS_ARCH}" = "Darwin"; then
         dnl We need to make sure that we use the symbols coming from the clang
         dnl binary. In order to do this, we need to pass -flat_namespace and
         dnl -undefined suppress to the linker. This makes sure that we link the
         dnl symbols into the flat namespace provided by clang, and thus get
--- a/build/build-clang/build-clang.py
+++ b/build/build-clang/build-clang.py
@@ -115,33 +115,18 @@ def delete(path):
         shutil.rmtree(path)
     else:
         try:
             os.unlink(path)
         except Exception:
             pass
 
 
-def install_libgcc(gcc_dir, clang_dir, is_final_stage):
-    gcc_bin_dir = os.path.join(gcc_dir, 'bin')
-
-    # Copy over gcc toolchain bits that clang looks for, to ensure that
-    # clang is using a consistent version of ld, since the system ld may
-    # be incompatible with the output clang produces.  But copy it to a
-    # target-specific directory so a cross-compiler to Mac doesn't pick
-    # up the (Linux-specific) ld with disastrous results.
-    #
-    # Only install this for the bootstrap process; we expect any consumers of
-    # the newly-built toolchain to provide an appropriate ld themselves.
-    if not is_final_stage:
-        x64_bin_dir = os.path.join(clang_dir, 'x86_64-unknown-linux-gnu', 'bin')
-        mkdir_p(x64_bin_dir)
-        shutil.copy2(os.path.join(gcc_bin_dir, 'ld'), x64_bin_dir)
-
-    out = subprocess.check_output([os.path.join(gcc_bin_dir, "gcc"),
+def install_libgcc(gcc_dir, clang_dir):
+    out = subprocess.check_output([os.path.join(gcc_dir, "bin", "gcc"),
                                    '-print-libgcc-file-name'])
 
     libgcc_dir = os.path.dirname(out.rstrip())
     clang_lib_dir = os.path.join(clang_dir, "lib", "gcc",
                                  "x86_64-unknown-linux-gnu",
                                  os.path.basename(libgcc_dir))
     mkdir_p(clang_lib_dir)
     copy_tree(libgcc_dir, clang_lib_dir)
@@ -319,17 +304,17 @@ def build_one_stage(cc, cxx, asm, ld, ar
     cmake_args += cmake_base_args(
         cc, cxx, asm, ld, ar, ranlib, libtool, inst_dir)
     cmake_args += [
         src_dir
     ]
     build_package(build_dir, cmake_args)
 
     if is_linux():
-        install_libgcc(gcc_dir, inst_dir, is_final_stage)
+        install_libgcc(gcc_dir, inst_dir)
     # For some reasons the import library clang.lib of clang.exe is not
     # installed, so we copy it by ourselves.
     if is_windows():
         # The compiler-rt cmake scripts don't allow to build it for multiple
         # targets at once on Windows, so manually build the 32-bits compiler-rt
         # during the final stage.
         build_32_bit = False
         if is_final_stage:
@@ -686,23 +671,19 @@ if __name__ == "__main__":
         extra_cxxflags = ["-stdlib=libc++"]
         extra_cflags2 = []
         extra_cxxflags2 = ["-stdlib=libc++"]
         extra_asmflags = []
         extra_ldflags = []
     elif is_linux():
         extra_cflags = []
         extra_cxxflags = []
-        # When building stage2 and stage3, we want the newly-built clang to pick
-        # up whatever headers were installed from the gcc we used to build stage1,
-        # always, rather than the system headers.  Providing -gcc-toolchain
-        # encourages clang to do that.
-        extra_cflags2 = ["-fPIC", '-gcc-toolchain', stage1_inst_dir]
+        extra_cflags2 = ["-fPIC"]
         # Silence clang's warnings about arguments not being used in compilation.
-        extra_cxxflags2 = ["-fPIC", '-Qunused-arguments', '-gcc-toolchain', stage1_inst_dir]
+        extra_cxxflags2 = ["-fPIC", '-Qunused-arguments']
         extra_asmflags = []
         # Avoid libLLVM internal function calls going through the PLT.
         extra_ldflags = ['-Wl,-Bsymbolic-functions']
 
         if 'LD_LIBRARY_PATH' in os.environ:
             os.environ['LD_LIBRARY_PATH'] = ('%s/lib64/:%s' %
                                              (gcc_dir, os.environ['LD_LIBRARY_PATH']))
         else:
--- a/build/unix/build-gcc/build-gcc.sh
+++ b/build/unix/build-gcc/build-gcc.sh
@@ -34,39 +34,32 @@ build_binutils() {
   # if binutils_configure_flags is not set at all, give it the default value
   if [ -z "${binutils_configure_flags+xxx}" ];
   then
     # gold is disabled because we don't use it on automation, and also we ran into
     # some issues with it using this script in build-clang.py.
     #
     # --enable-targets builds extra target support in ld.
     # Enabling aarch64 support brings in arm support, so we don't need to specify that too.
-    #
-    # It is important to have the binutils --target and the gcc --target match,
-    # so binutils will install binaries in a place that gcc will look for them.
-    binutils_configure_flags="--enable-targets=aarch64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu --target=x86_64-unknown-linux-gnu --disable-gold --enable-plugins --disable-nls --with-sysroot=/"
+    binutils_configure_flags="--enable-targets=aarch64-unknown-linux-gnu --disable-gold --enable-plugins --disable-nls --with-sysroot=/"
   fi
 
   mkdir $root_dir/binutils-objdir
   pushd $root_dir/binutils-objdir
   ../binutils-$binutils_version/configure --prefix=${prefix-/tools/gcc}/ $binutils_configure_flags
   make $make_flags
   make install $make_flags DESTDIR=$root_dir
   export PATH=$root_dir/${prefix-/tools/gcc}/bin:$PATH
   popd
 }
 
 build_gcc() {
-  # Be explicit about --build and --target so header and library install
-  # directories are consistent.
-  local target="${1:-x86_64-unknown-linux-gnu}"
-
   mkdir $root_dir/gcc-objdir
   pushd $root_dir/gcc-objdir
-  ../gcc-$gcc_version/configure --prefix=${prefix-/tools/gcc} --build=x86_64-unknown-linux-gnu --target="${target}" --enable-languages=c,c++  --disable-nls --disable-gnu-unique-object --enable-__cxa_atexit --with-arch-32=pentiumpro --with-sysroot=/
+  ../gcc-$gcc_version/configure --prefix=${prefix-/tools/gcc} --enable-languages=c,c++  --disable-nls --disable-gnu-unique-object --enable-__cxa_atexit --with-arch-32=pentiumpro --with-sysroot=/
   make $make_flags
   make $make_flags install DESTDIR=$root_dir
 
   cd $root_dir/tools
   ln -s gcc gcc/bin/cc
 
   tar caf $root_dir/gcc.tar.xz gcc/
   popd
--- a/taskcluster/ci/fetch/toolchains.yml
+++ b/taskcluster/ci/fetch/toolchains.yml
@@ -15,16 +15,27 @@ binutils-2.27:
     type: static-url
     url: ftp://ftp.gnu.org/gnu/binutils/binutils-2.27.tar.bz2
     sha256: 369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88
     size: 26099568
     gpg-signature:
       sig-url: "{url}.sig"
       key-path: build/unix/build-gcc/EAF1C276A747E9ED86210CBAC3126D3B4AE55E93.key
 
+binutils-2.28.1:
+  description: binutils 2.28.1 source code
+  fetch:
+    type: static-url
+    url: ftp://ftp.gnu.org/gnu/binutils/binutils-2.28.1.tar.xz
+    sha256: 16328a906e55a3c633854beec8e9e255a639b366436470b4f6245eb0d2fde942
+    size: 19440112
+    gpg-signature:
+      sig-url: "{url}.sig"
+      key-path: build/unix/build-gcc/EAF1C276A747E9ED86210CBAC3126D3B4AE55E93.key
+
 binutils-2.31.1:
   description: binutils 2.31.1 source code
   fetch:
     type: static-url
     url: ftp://ftp.gnu.org/gnu/binutils/binutils-2.31.1.tar.xz
     sha256: 5d20086ecf5752cc7d9134246e9588fa201740d540f7eb84d795b1f7a93bca86
     size: 20467996
     gpg-signature:
@@ -34,16 +45,27 @@ binutils-2.31.1:
 cloog-0.18.1:
   description: cloog source code
   fetch:
     type: static-url
     url: ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-0.18.1.tar.gz
     sha256: 02500a4edd14875f94fe84cbeda4290425cb0c1c2474c6f75d75a303d64b4196
     size: 3857324
 
+gcc-4.9.4:
+  description: GCC 4.9.4 source code
+  fetch:
+    type: static-url
+    url: ftp://ftp.gnu.org/gnu/gcc/gcc-4.9.4/gcc-4.9.4.tar.bz2
+    sha256: 6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092
+    size: 90097606
+    gpg-signature:
+      sig-url: "{url}.sig"
+      key-path: build/unix/build-gcc/13975A70E63C361C73AE69EF6EEB81F8981C74C7.key
+
 gcc-6.4.0:
   description: GCC 6.4.0 source code
   fetch:
     type: static-url
     url: ftp://ftp.gnu.org/gnu/gcc/gcc-6.4.0/gcc-6.4.0.tar.xz
     sha256: 850bf21eafdfe5cd5f6827148184c08c4a0852a37ccf36ce69855334d2c914d4
     size: 76156220
     gpg-signature:
--- a/taskcluster/ci/toolchain/clang-tidy.yml
+++ b/taskcluster/ci/toolchain/clang-tidy.yml
@@ -29,17 +29,17 @@ linux64-clang-tidy:
     treeherder:
         symbol: TL(clang-tidy)
     run:
         script: build-clang-tidy-linux.sh
         resources:
             - 'build/build-clang/clang-tidy-linux64.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
     toolchains:
-        - linux64-gcc-6
+        - linux64-gcc-4.9
 
 macosx64-clang-tidy:
     index:
         job-name: macosx64-clang-tidy
     treeherder:
         symbol: TM(clang-tidy)
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux-large
     worker:
@@ -50,17 +50,17 @@ macosx64-clang-tidy:
         script: build-clang-tidy-macosx.sh
         tooltool-downloads: internal
         resources:
             - 'build/build-clang/clang-tidy-macosx64.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
     toolchains:
         - linux64-cctools-port
         - linux64-clang-7
-        - linux64-gcc-6
+        - linux64-gcc-4.9
         - linux64-node
 
 win32-clang-tidy:
     description: "Clang-tidy toolchain build"
     index:
         job-name: win32-clang-tidy
     treeherder:
         symbol: TW32(clang-tidy)
--- a/taskcluster/ci/toolchain/clang.yml
+++ b/taskcluster/ci/toolchain/clang.yml
@@ -17,81 +17,81 @@ linux64-clang-4.0:
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux-large
     run:
         script: build-clang-4.0-linux.sh
         resources:
             - 'build/build-clang/clang-4.0-linux64.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/clang.tar.xz
     toolchains:
-        - linux64-gcc-6
+        - linux64-gcc-4.9
 
 linux64-clang-7:
     description: "Clang 7 toolchain build"
     treeherder:
         symbol: TL(clang7)
     run:
         using: toolchain-script
         script: build-clang-7-linux.sh
         resources:
             - 'build/build-clang/build-clang.py'
             - 'build/build-clang/clang-7-linux64.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-alias: linux64-clang
         toolchain-artifact: public/build/clang.tar.xz
     toolchains:
-        - linux64-gcc-6
+        - linux64-gcc-4.9
 
 linux64-clang-trunk-mingw-x86:
     description: "MinGW-Clang Trunk x86 toolchain build"
     treeherder:
         symbol: TMW(clang-x86)
     run:
         script: build-clang-trunk-mingw.sh
         arguments: [
             'x86'
         ]
         resources:
             - 'build/build-clang/clang-trunk-mingw.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/clangmingw.tar.xz
     toolchains:
-        - linux64-gcc-6
+        - linux64-gcc-4.9
 
 linux64-clang-trunk-mingw-x64:
     description: "MinGW-Clang Trunk x64 toolchain build"
     treeherder:
         symbol: TMW(clang-x64)
         tier: 1
     run:
         script: build-clang-trunk-mingw.sh
         arguments: [
             'x64'
         ]
         resources:
             - 'build/build-clang/clang-trunk-mingw.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/clangmingw.tar.xz
     toolchains:
-        - linux64-gcc-6
+        - linux64-gcc-4.9
 
 linux64-clang-7-android-cross:
     description: "Clang 7 toolchain build"
     treeherder:
         symbol: TL(clang7-android)
     run:
         using: toolchain-script
         script: build-clang-7-android.sh
         resources:
             - 'build/build-clang/clang-7-android.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-alias: linux64-clang-android-cross
         toolchain-artifact: public/build/clang.tar.xz
     toolchains:
-        - linux64-gcc-6
+        - linux64-gcc-4.9
         - linux64-android-ndk-linux-repack
 
 linux64-clang-7-macosx-cross:
     description: "Clang 7 toolchain build with MacOS Compiler RT libs"
     treeherder:
         symbol: TL(clang7-macosx-cross)
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
@@ -104,17 +104,17 @@ linux64-clang-7-macosx-cross:
             - 'build/build-clang/clang-7-macosx64.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-alias: linux64-clang-macosx-cross
         toolchain-artifact: public/build/clang.tar.xz
         tooltool-downloads: internal
     toolchains:
         - linux64-cctools-port
         - linux64-clang-7
-        - linux64-gcc-6
+        - linux64-gcc-4.9
 
 macosx64-clang:
     description: "Clang toolchain build"
     treeherder:
         symbol: TM(clang)
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux-large
     worker:
         max-run-time: 3600
@@ -128,17 +128,17 @@ macosx64-clang:
         tooltool-downloads: internal
         resources:
             - 'build/build-clang/clang-7-macosx64.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/clang.tar.xz
     toolchains:
         - linux64-cctools-port
         - linux64-clang-7
-        - linux64-gcc-6
+        - linux64-gcc-4.9
         - linux64-node
 
 win64-clang-cl:
     description: "Clang-cl toolchain build"
     treeherder:
         symbol: TW64(clang-cl)
     worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
     worker:
--- a/taskcluster/ci/toolchain/gcc.yml
+++ b/taskcluster/ci/toolchain/gcc.yml
@@ -6,41 +6,57 @@ job-defaults:
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 3600
     run:
         resources:
             - 'build/unix/build-gcc/build-gcc.sh'
         toolchain-artifact: public/build/gcc.tar.xz
 
+linux64-gcc-4.9:
+    description: "GCC 4.9 toolchain build"
+    treeherder:
+        symbol: TL(gcc4.9)
+    run:
+        script: build-gcc-4.9-linux.sh
+    fetches:
+        fetch:
+            - binutils-2.25.1
+            - cloog-0.18.1
+            - gcc-4.9.4
+            - gmp-5.1.3
+            - isl-0.12.2
+            - mpc-0.8.2
+            - mpfr-3.1.5
+
 linux64-gcc-6:
     description: "GCC 6 toolchain build"
     treeherder:
         symbol: TL(gcc6)
     run:
         script: build-gcc-6-linux.sh
         toolchain-alias: linux64-gcc
     fetches:
         fetch:
-            - binutils-2.31.1
+            - binutils-2.28.1
             - gcc-6.4.0
             - gmp-5.1.3
             - isl-0.15
             - mpc-0.8.2
             - mpfr-3.1.5
 
 linux64-gcc-7:
     description: "GCC 7 toolchain build"
     treeherder:
         symbol: TL(gcc7)
     run:
         script: build-gcc-7-linux.sh
     fetches:
         fetch:
-            - binutils-2.31.1
+            - binutils-2.28.1
             - gcc-7.3.0
             - gmp-6.1.0
             - isl-0.16.1
             - mpc-1.0.3
             - mpfr-3.1.4
 
 linux64-gcc-sixgill:
     description: "sixgill GCC plugin build"
@@ -50,14 +66,14 @@ linux64-gcc-sixgill:
         script: build-gcc-sixgill-plugin-linux.sh
         resources:
             - 'taskcluster/scripts/misc/build-gcc-sixgill-plugin-linux.sh'
         toolchain-artifact: public/build/sixgill.tar.xz
     toolchains:
         - linux64-gcc-6
     fetches:
         fetch:
-            - binutils-2.31.1
+            - binutils-2.28.1
             - isl-0.15
             - gcc-6.4.0
             - gmp-5.1.3
             - mpc-0.8.2
             - mpfr-3.1.5
--- a/taskcluster/ci/toolchain/misc.yml
+++ b/taskcluster/ci/toolchain/misc.yml
@@ -27,17 +27,17 @@ linux64-infer:
 linux64-llvm-dsymutil:
     description: "llvm-dsymutil toolchain build"
     treeherder:
         symbol: TL(dsymutil)
     run:
         script: build-llvm-dsymutil.sh
         toolchain-artifact: public/build/llvm-dsymutil.tar.xz
     toolchains:
-        - linux64-gcc-6
+        - linux64-gcc-4.9
 
 linux64-binutils:
     description: "Binutils toolchain build"
     treeherder:
         symbol: TL(binutil)
     worker:
         max-run-time: 3600
     run:
@@ -80,17 +80,17 @@ linux64-tup:
         script: build-tup-linux.sh
         resources:
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/tup.tar.xz
     run-on-projects:
         - trunk
         - try
     toolchains:
-        - linux64-gcc-6
+        - linux64-gcc-4.9
 
 linux64-custom-v8:
     description: "Custom v8 build"
     treeherder:
         symbol: TL(custom-v8)
     worker:
         docker-image: {in-tree: custom-v8}
         max-run-time: 3600
--- a/taskcluster/scripts/misc/build-clang-trunk-mingw.sh
+++ b/taskcluster/scripts/misc/build-clang-trunk-mingw.sh
@@ -316,11 +316,12 @@ build_libcxx
 build_utils
 
 popd
 
 # Put a tarball in the artifacts dir
 mkdir -p $UPLOAD_DIR
 
 pushd $(dirname $INSTALL_DIR)
+rm -f clang/lib/libstdc++*
 tar caf clangmingw.tar.xz clang
 mv clangmingw.tar.xz $UPLOAD_DIR
 popd
--- a/taskcluster/scripts/misc/build-gcc-6-linux.sh
+++ b/taskcluster/scripts/misc/build-gcc-6-linux.sh
@@ -9,17 +9,17 @@ 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_ext=xz
-binutils_version=2.31.1
+binutils_version=2.28.1
 binutils_ext=xz
 
 pushd $root_dir/gcc-$gcc_version
 ln -sf ../gmp-5.1.3 gmp
 ln -sf ../isl-0.15 isl
 ln -sf ../mpc-0.8.2 mpc
 ln -sf ../mpfr-3.1.5 mpfr
 popd
--- a/taskcluster/scripts/misc/build-gcc-7-linux.sh
+++ b/taskcluster/scripts/misc/build-gcc-7-linux.sh
@@ -9,17 +9,17 @@ UPLOAD_DIR=$HOME/artifacts
 
 root_dir=$HOME_DIR
 data_dir=$HOME_DIR/src/build/unix/build-gcc
 
 . $data_dir/build-gcc.sh
 
 gcc_version=7.3.0
 gcc_ext=xz
-binutils_version=2.31.1
+binutils_version=2.28.1
 binutils_ext=xz
 
 pushd $root_dir/gcc-$gcc_version
 ln -sf ../gmp-6.1.0 gmp
 ln -sf ../isl-0.16.1 isl
 ln -sf ../mpc-1.0.3 mpc
 ln -sf ../mpfr-3.1.4 mpfr
 popd
--- a/taskcluster/scripts/misc/build-gcc-sixgill-plugin-linux.sh
+++ b/taskcluster/scripts/misc/build-gcc-sixgill-plugin-linux.sh
@@ -23,17 +23,17 @@ gcc_ext=xz
 binutils_version=2.28.1
 binutils_ext=xz
 sixgill_rev=bc0ef9258470
 sixgill_repo=https://hg.mozilla.org/users/sfink_mozilla.com/sixgill
 
 . $data_dir/build-gcc.sh
 
 pushd $root_dir/gcc-$gcc_version
-ln -sf ../binutils-2.31.1 binutils
+ln -sf ../binutils-2.28.1 binutils
 ln -sf ../gmp-5.1.3 gmp
 ln -sf ../isl-0.15 isl
 ln -sf ../mpc-0.8.2 mpc
 ln -sf ../mpfr-3.1.5 mpfr
 popd
 
 export TMPDIR=${TMPDIR:-/tmp/}
 export gcc_bindir=$root_dir/src/gcc/bin