| FROM debian:12 AS gcc-builder |
| |
| 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 \ |
| git |
| |
| ADD . /usr/src/gcc |
| RUN /bin/sh -c set -ex; \ |
| cd /usr/src/gcc; \ |
| git log -1 --format="%h" > /GCCRS_BUILD; \ |
| ./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=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 |
| |
| FROM rust:latest |
| COPY --from=gcc-builder /usr/ /usr/ |
| COPY --from=gcc-builder /GCCRS_BUILD /GCCRS_BUILD |
| RUN cargo install --git https://github.com/Rust-GCC/cargo-gccrs cargo-gccrs |
| |
| CMD ["bash"] |