aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Herron <philip.herron@embecosm.com>2020-11-27 12:57:49 +0000
committerPhilip Herron <philip.herron@embecosm.com>2020-11-28 21:13:22 +0000
commit4e475efeb4e3d0c8a418f28ea1176aa5b0550b44 (patch)
tree58f51e035f166824eb996497f3ec243bea9f2316
parentf28325125b7ea31e5cbfd3269a3ee6a4b79ddfd2 (diff)
downloadgcc-4e475efeb4e3d0c8a418f28ea1176aa5b0550b44.zip
gcc-4e475efeb4e3d0c8a418f28ea1176aa5b0550b44.tar.gz
gcc-4e475efeb4e3d0c8a418f28ea1176aa5b0550b44.tar.bz2
Add Docker file for automated images to allow for easier testing
Example usage: docker build . -t gccrs-dev docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp \ gccrs-dev:latest gccrs -g -O2 -c \ gcc/testsuite/rust.test/compilable/type_infer1.rs -o type_infer1.o
-rw-r--r--Dockerfile71
1 files changed, 71 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..460fe4b
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,71 @@
+FROM ubuntu:latest
+
+RUN apt-get update; \
+ DEBIAN_FRONTEND="noninteractive" apt-get install -y --no-install-recommends \
+ autoconf \
+ automake \
+ bzip2\
+ dpkg-dev \
+ file \
+ wget \
+ curl \
+ build-essential \
+ imagemagick \
+ libbz2-dev \
+ libc6-dev \
+ libcurl4-openssl-dev \
+ libdb-dev \
+ libevent-dev \
+ libffi-dev \
+ libgdbm-dev \
+ libglib2.0-dev \
+ libgmp-dev \
+ libjpeg-dev \
+ libkrb5-dev \
+ liblzma-dev \
+ libmagickcore-dev \
+ libmagickwand-dev \
+ libmaxminddb-dev \
+ libncurses5-dev \
+ libncursesw5-dev \
+ libpng-dev \
+ libpq-dev \
+ libreadline-dev \
+ libsqlite3-dev \
+ libssl-dev \
+ libtool \
+ libwebp-dev \
+ libxml2-dev \
+ libxslt-dev \
+ libyaml-dev \
+ make \
+ patch \
+ unzip \
+ xz-utils \
+ zlib1g-dev \
+ flex \
+ bison
+
+ADD . /usr/src/gcc
+RUN /bin/sh -c set -ex; \
+ cd /usr/src/gcc; \
+ ./contrib/download_prerequisites; { rm *.tar.* || true; }; \
+ mkdir -p /usr/src/gcc/gcc-build; \
+ cd /usr/src/gcc/gcc-build; \
+ /usr/src/gcc/configure --disable-bootstrap --disable-multilib --enable-languages=c,c++,rust; \
+ make -j "$(nproc)"; \
+ make install-strip; \
+ cd /root; \
+ rm -rf /usr/src/gcc
+
+RUN /bin/sh -c set -ex; \
+ echo '/usr/local/lib64' > /etc/ld.so.conf.d/local-lib64.conf; \
+ ldconfig -v
+
+RUN /bin/sh -c set -ex; \
+ 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
+
+
+CMD ["bash"]