]> git.proxmox.com Git - rustc.git/blob - src/ci/docker/host-x86_64/dist-x86_64-linux/build-gcc.sh
ddc2066537cefa7f69d0b6599695a7da8defa5df
[rustc.git] / src / ci / docker / host-x86_64 / dist-x86_64-linux / build-gcc.sh
1 #!/usr/bin/env bash
2 set -ex
3
4 source shared.sh
5
6 GCC=5.5.0
7
8 curl https://ftp.gnu.org/gnu/gcc/gcc-$GCC/gcc-$GCC.tar.xz | xzcat | tar xf -
9 cd gcc-$GCC
10
11 # FIXME(#49246): Remove the `sed` below.
12 #
13 # On 2018 March 21st, two Travis builders' cache for Docker are suddenly invalidated. Normally this
14 # is fine, because we just need to rebuild the Docker image. However, it reveals a network issue:
15 # downloading from `ftp://gcc.gnu.org/` from Travis (using passive mode) often leads to "Connection
16 # timed out" error, and even when the download completed, the file is usually corrupted. This causes
17 # nothing to be landed that day.
18 #
19 # We observed that the `gcc-4.8.5.tar.bz2` above can be downloaded successfully, so as a stability
20 # improvement we try to download from the HTTPS mirror instead. Turns out this uncovered the third
21 # bug: the host `gcc.gnu.org` and `cygwin.com` share the same IP, and the TLS certificate of the
22 # latter host is presented to `wget`! Therefore, we choose to download from the insecure HTTP server
23 # instead here.
24 #
25 sed -i'' 's|ftp://gcc\.gnu\.org/|http://gcc.gnu.org/|g' ./contrib/download_prerequisites
26
27 ./contrib/download_prerequisites
28 mkdir ../gcc-build
29 cd ../gcc-build
30 hide_output ../gcc-$GCC/configure \
31 --prefix=/rustroot \
32 --enable-languages=c,c++
33 hide_output make -j10
34 hide_output make install
35 ln -s gcc /rustroot/bin/cc
36
37 cd ..
38 rm -rf gcc-build
39 rm -rf gcc-$GCC
40 yum erase -y gcc gcc-c++ binutils