]>
Commit | Line | Data |
---|---|---|
32a655c1 SL |
1 | FROM ubuntu:16.04 |
2 | ||
3 | RUN apt-get update && apt-get install -y --no-install-recommends \ | |
4 | automake \ | |
5 | bison \ | |
6 | bzip2 \ | |
7 | ca-certificates \ | |
8 | cmake \ | |
9 | curl \ | |
10 | file \ | |
11 | flex \ | |
12 | g++ \ | |
13 | gawk \ | |
14 | gdb \ | |
15 | git \ | |
16 | gperf \ | |
17 | help2man \ | |
18 | libncurses-dev \ | |
19 | libtool-bin \ | |
20 | make \ | |
21 | patch \ | |
22 | python2.7 \ | |
23 | sudo \ | |
24 | texinfo \ | |
25 | wget \ | |
8bb4bdeb XL |
26 | xz-utils \ |
27 | libssl-dev \ | |
28 | pkg-config | |
32a655c1 | 29 | |
32a655c1 SL |
30 | RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \ |
31 | dpkg -i dumb-init_*.deb && \ | |
32 | rm dumb-init_*.deb | |
33 | ENTRYPOINT ["/usr/bin/dumb-init", "--"] | |
34 | ||
35 | # Ubuntu 16.04 (this contianer) ships with make 4, but something in the | |
36 | # toolchains we build below chokes on that, so go back to make 3 | |
37 | RUN curl https://ftp.gnu.org/gnu/make/make-3.81.tar.gz | tar xzf - && \ | |
38 | cd make-3.81 && \ | |
39 | ./configure --prefix=/usr && \ | |
40 | make && \ | |
41 | make install && \ | |
42 | cd .. && \ | |
43 | rm -rf make-3.81 | |
44 | ||
45 | RUN curl http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.22.0.tar.bz2 | \ | |
46 | tar xjf - && \ | |
47 | cd crosstool-ng && \ | |
48 | ./configure --prefix=/usr/local && \ | |
49 | make -j$(nproc) && \ | |
50 | make install && \ | |
51 | cd .. && \ | |
52 | rm -rf crosstool-ng | |
53 | ||
54 | RUN groupadd -r rustbuild && useradd -m -r -g rustbuild rustbuild | |
55 | RUN mkdir /x-tools && chown rustbuild:rustbuild /x-tools | |
56 | USER rustbuild | |
57 | WORKDIR /tmp | |
58 | ||
7cac9316 | 59 | COPY dist-aarch64-linux/aarch64-linux-gnu.config dist-aarch64-linux/build-toolchains.sh /tmp/ |
32a655c1 SL |
60 | RUN ./build-toolchains.sh |
61 | ||
62 | USER root | |
63 | ||
cc61c64b | 64 | RUN curl -o /usr/local/bin/sccache \ |
7cac9316 | 65 | https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-05-12-sccache-x86_64-unknown-linux-musl && \ |
cc61c64b XL |
66 | chmod +x /usr/local/bin/sccache |
67 | ||
32a655c1 | 68 | ENV PATH=$PATH:/x-tools/aarch64-unknown-linux-gnueabi/bin |
32a655c1 SL |
69 | |
70 | ENV CC_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnueabi-gcc \ | |
71 | AR_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnueabi-ar \ | |
cc61c64b | 72 | CXX_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnueabi-g++ |
32a655c1 | 73 | |
cc61c64b | 74 | ENV HOSTS=aarch64-unknown-linux-gnu |
32a655c1 SL |
75 | |
76 | ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended | |
77 | ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS |