blob: 2db24b99036a110862d18dabdf5adc4caf207676 [file] [log] [blame]
# We might want to switch to alpine, but it is not stable enough yet.
FROM ubuntu:14.04
ENV TZ=Europe/Moscow
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# Install crosstool-ng deps.
RUN apt-get update
RUN apt-get install -y curl gcc git g++ gperf bison flex texinfo help2man make libncurses5-dev \
python3-dev autoconf automake libtool gawk wget bzip2 xz-utils unzip \
patch libstdc++6 rsync
# Put a fix for strip.
COPY patches/github_pull_1244.patch .
# Install crosstool-ng.
RUN git clone --branch crosstool-ng-1.24.0 --depth 1 https://github.com/crosstool-ng/crosstool-ng.git && \
cd crosstool-ng && \
git checkout b2151f1dba2b20c310adfe7198e461ec4469172b && \
git apply ../github_pull_1244.patch && \
./bootstrap && ./configure && make && make install && \
cd .. && rm -rf crosstool-ng
# Create a user.
ARG USERNAME=ct
RUN groupadd -g 1000 $USERNAME
RUN useradd -r -u 1000 --create-home -g $USERNAME $USERNAME
USER $USERNAME
WORKDIR /home/$USERNAME
# Download zlib sources.
RUN curl -LO https://zlib.net/zlib-1.2.11.tar.gz && \
tar -xf zlib-1.2.11.tar.gz && \
rm zlib-1.2.11.tar.gz
# Save crosstool-ng config files.
COPY toolchains toolchains
# Used by crosstool-ng.
RUN mkdir src
ENV TARGET=x86_64-unknown-linux-gnu
ENV VERSION=gcc-8.3.0-glibc-2.19-kernel-4.9
ENV TOOLCHAIN_VERSION_SUFFIX=""
# Add entry point.
COPY build_toolchain.sh .
ENTRYPOINT "/bin/bash" "build_toolchain.sh" ${TARGET} ${VERSION} ${TOOLCHAIN_VERSION_SUFFIX}