Skip to content

Commit d888120

Browse files
authored
Add ENV overrides & Internal Build Script (#85)
1 parent 3c429cb commit d888120

File tree

10 files changed

+430
-196
lines changed

10 files changed

+430
-196
lines changed

.dockerignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,7 @@
22
**/Dockerfile
33
**/target/
44
**/*.img
5-
**/*.diff.craff
5+
**/*.diff.craff
6+
# Don't add scripts so that builds dont have to rerun on script changes to those builds
7+
scripts
8+
target

.github/builder/Dockerfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@ FROM fedora:20
33

44
ENV PATH="${PATH}:/root/.cargo/bin/"
55

6-
COPY .github/builder/rsrc/rustup-init /install/rustup-init
6+
COPY .github/builder/rsrc/rust-nightly-x86_64-unknown-linux-gnu.tar.xz /install/rust-nightly-x86_64-unknown-linux-gnu.tar.xz
77
COPY .github/builder/rsrc/make-4.4.1.tar.gz /install/make-4.4.1.tar.gz
8-
COPY .github/builder/rsrc/cmake-3.28.0-rc5-linux-x86_64.tar.gz /install/cmake-3.28.0-rc5-linux-x86_64.tar.gz
8+
COPY .github/builder/rsrc/cmake-3.29.3-linux-x86_64.tar.gz /install/cmake-3.29.3-linux-x86_64.tar.gz
99
COPY .github/builder/rsrc/lld-5.0.2.src.tar.xz /install/lld-5.0.2.src.tar.xz
1010
COPY .github/builder/rsrc/cfe-5.0.2.src.tar.xz /install/cfe-5.0.2.src.tar.xz
1111
COPY .github/builder/rsrc/llvm-5.0.2.src.tar.xz /install/llvm-5.0.2.src.tar.xz
1212
COPY .github/builder/rsrc/rpms /install/rpms
1313

1414
RUN yum -y install /install/rpms/*.rpm && yum clean all
1515

16-
RUN chmod +x /install/rustup-init && \
17-
/install/rustup-init -y --default-toolchain nightly && \
16+
RUN tar -C /install -xvf /install/rust-nightly-x86_64-unknown-linux-gnu.tar.xz && \
17+
/install/rust-nightly-x86_64-unknown-linux-gnu/install.sh && \
1818
mkdir -p /make && \
1919
tar -C /make --strip-components=1 -xf /install/make-4.4.1.tar.gz && \
2020
pushd /make && \
@@ -23,7 +23,7 @@ RUN chmod +x /install/rustup-init && \
2323
make install && \
2424
make clean && \
2525
popd && \
26-
tar -C /usr/local/ --strip-components=1 -xf /install/cmake-3.28.0-rc5-linux-x86_64.tar.gz && \
26+
tar -C /usr/local/ --strip-components=1 -xf /install/cmake-3.29.3-linux-x86_64.tar.gz && \
2727
mkdir -p /llvm/tools/clang && \
2828
mkdir -p /llvm/tools/lld && \
2929
tar -C /llvm --strip-components=1 -xf /install/llvm-5.0.2.src.tar.xz && \
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# hadolint global ignore=DL3033,SC3044
2+
FROM fedora:20
3+
4+
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
5+
6+
ENV PATH="${PATH}:/root/.cargo/bin/"
7+
8+
COPY .github/builder/rsrc/rust-nightly-x86_64-unknown-linux-gnu.tar.xz /install/rust-nightly-x86_64-unknown-linux-gnu.tar.xz
9+
COPY .github/builder/rsrc/make-4.4.1.tar.gz /install/make-4.4.1.tar.gz
10+
COPY .github/builder/rsrc/cmake-3.29.3-linux-x86_64.tar.gz /install/cmake-3.29.3-linux-x86_64.tar.gz
11+
COPY .github/builder/rsrc/lld-5.0.2.src.tar.xz /install/lld-5.0.2.src.tar.xz
12+
COPY .github/builder/rsrc/cfe-5.0.2.src.tar.xz /install/cfe-5.0.2.src.tar.xz
13+
COPY .github/builder/rsrc/llvm-5.0.2.src.tar.xz /install/llvm-5.0.2.src.tar.xz
14+
COPY .github/builder/rsrc/rpms /install/rpms
15+
COPY .github/builder/rsrc/simics /simics
16+
COPY .github/builder/rsrc/ispm /simics/ispm
17+
18+
RUN yum -y install /install/rpms/*.rpm && yum clean all
19+
20+
RUN tar -C /install -xvf /install/rust-nightly-x86_64-unknown-linux-gnu.tar.xz && \
21+
/install/rust-nightly-x86_64-unknown-linux-gnu/install.sh && \
22+
mkdir -p /make && \
23+
tar -C /make --strip-components=1 -xf /install/make-4.4.1.tar.gz && \
24+
pushd /make && \
25+
./configure && \
26+
make && \
27+
make install && \
28+
make clean && \
29+
popd && \
30+
tar -C /usr/local/ --strip-components=1 -xf /install/cmake-3.29.3-linux-x86_64.tar.gz && \
31+
mkdir -p /llvm/tools/clang && \
32+
mkdir -p /llvm/tools/lld && \
33+
tar -C /llvm --strip-components=1 -xf /install/llvm-5.0.2.src.tar.xz && \
34+
tar -C /llvm/tools/clang --strip-components=1 -xf /install/cfe-5.0.2.src.tar.xz && \
35+
tar -C /llvm/tools/lld --strip-components=1 -xf /install/lld-5.0.2.src.tar.xz && \
36+
mkdir -p /llvm/build && \
37+
pushd /llvm/build && \
38+
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE="MinSizeRel" -DLLVM_TARGETS_TO_BUILD="X86" .. && \
39+
make -j "$(nproc)" && \
40+
make install && \
41+
make clean && \
42+
rm -rf /llvm/build/ && \
43+
popd && \
44+
rm -rf /make /llvm
45+
46+
WORKDIR /
47+
48+
ENV PATH="${PATH}:/simics/ispm/"
49+
ENV PATH="${PATH}:/root/.cargo/bin/"
50+
51+
COPY . /tsffs/
52+
53+
WORKDIR /tsffs/
54+
55+
RUN ispm settings install-dir /simics && \
56+
ispm packages --list
57+
58+
RUN RUSTFLAGS="-C linker=clang -C link-arg=-fuse-ld=$(which ld.lld)" && \
59+
export RUSTFLAGS && \
60+
cargo install --path simics-rs/cargo-simics-build && \
61+
SIMICS_PACKAGE_VERSION="$(ispm packages --list | grep 1000 | awk '{print $3}' | cut -d '.' -f1).$(grep -E '^version = ' < Cargo.toml | sed -n '$p' | grep -oE '\"[^\"]+\"' | tr -d '\"' | cut -d'.' -f2-)" && \
62+
export SIMICS_PACKAGE_VERSION && \
63+
cargo simics-build -r && \
64+
mkdir -p /packages-internal && \
65+
cp target/release/*.ispm /packages-internal

.github/builder/build.sh

Lines changed: 0 additions & 82 deletions
This file was deleted.

0 commit comments

Comments
 (0)