summaryrefslogtreecommitdiff
path: root/Dockerfile
blob: efd4cac223301354cf34a6d5b875368daab313e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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"]