From 680e78fb52e25ef7de413689e4eb2442a71e0d66 Mon Sep 17 00:00:00 2001 From: Christy Perez Date: Mon, 14 Dec 2015 17:34:58 -0600 Subject: [PATCH] Build with gcc 5.3 Signed-off-by: Christy Perez --- 5.3/Dockerfile | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 5.3/Dockerfile diff --git a/5.3/Dockerfile b/5.3/Dockerfile new file mode 100644 index 00000000000..53c0503ff20 --- /dev/null +++ b/5.3/Dockerfile @@ -0,0 +1,54 @@ +FROM buildpack-deps:jessie + +# https://gcc.gnu.org/mirrors.html +ENV GPG_KEYS \ + B215C1633BCA0477615F1B35A5B3A004745C015A \ + B3C42148A44E6983B3E4CC0793FA9B1AB75C61B8 \ + 90AA470469D3965A87A5DCB494D03953902C9419 \ + 80F98B2E0DAB6C8281BDF541A7C8C3B2F71EDF1C \ + 7F74F97C103468EE5D750B583AB00996FC26A641 \ + 33C235A34C46AA3FFB293709A328C3A2C3C45C06 +RUN set -xe \ + && for key in $GPG_KEYS; do \ + gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \ + done + +# Last Modified: +ENV GCC_VERSION 5.3.0 +# Docker EOL: + +# "download_prerequisites" pulls down a bunch of tarballs and extracts them, +# but then leaves the tarballs themselves lying around +RUN buildDeps='flex' \ + && set -x \ + && apt-get update && apt-get install -y $buildDeps --no-install-recommends \ + && rm -r /var/lib/apt/lists/* \ + && curl -fSL "http://ftpmirror.gnu.org/gcc/gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.bz2" -o gcc.tar.bz2 \ + && curl -fSL "http://ftpmirror.gnu.org/gcc/gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.bz2.sig" -o gcc.tar.bz2.sig \ + && gpg --verify gcc.tar.bz2.sig \ + && mkdir -p /usr/src/gcc \ + && tar -xf gcc.tar.bz2 -C /usr/src/gcc --strip-components=1 \ + && rm gcc.tar.bz2* \ + && cd /usr/src/gcc \ + && ./contrib/download_prerequisites \ + && { rm *.tar.* || true; } \ + && dir="$(mktemp -d)" \ + && cd "$dir" \ + && /usr/src/gcc/configure \ + --disable-multilib \ + --enable-languages=c,c++,go \ + && make -j"$(nproc)" \ + && make install-strip \ + && cd .. \ + && rm -rf "$dir" \ + && apt-get purge -y --auto-remove $buildDeps + +# gcc installs .so files in /usr/local/lib64... +RUN echo '/usr/local/lib64' > /etc/ld.so.conf.d/local-lib64.conf \ + && ldconfig -v + +# ensure that alternatives are pointing to the new compiler and that old one is no longer used +RUN set -x \ + && dpkg-divert --divert /usr/bin/gcc.orig --rename /usr/bin/gcc \ + && dpkg-divert --divert /usr/bin/g++.orig --rename /usr/bin/g++ \ + && update-alternatives --install /usr/bin/cc cc /usr/local/bin/gcc 999