Skip to content

Commit d3072c1

Browse files
authored
Fixup versioning for simics APIs and add versioned tests (#75)
1 parent 07a2b35 commit d3072c1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1874
-666
lines changed

.dockerignore

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,5 @@
1-
config.mk
2-
.package-list
3-
.modcache
4-
Dockerfile
5-
.project-properties/
6-
bin/
7-
linux64/
8-
win64/
9-
packageinfo/
10-
target/
11-
documentation
12-
simics
13-
simics-eclipse
14-
simics-gui
15-
compiler.mk
1+
# Ignore dockerfile so re-runs with dockerfile-only fixes don't rebuild
2+
**/Dockerfile
3+
**/target/
4+
**/*.img
5+
**/*.diff.craff

.github/builder/.dockerignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

.github/builder/Dockerfile

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

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

6-
RUN yum -y update && \
7-
yum -y install \
8-
coreutils \
9-
gcc \
10-
gcc-c++ \
11-
make && \
12-
yum clean all
13-
146
COPY .github/builder/rsrc/rustup-init /install/rustup-init
157
COPY .github/builder/rsrc/make-4.4.1.tar.gz /install/make-4.4.1.tar.gz
168
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
17-
COPY .github/builder/rsrc/llvm-5.0.2.src.tar.xz /install/llvm-5.0.2.src.tar.xz
9+
COPY .github/builder/rsrc/lld-5.0.2.src.tar.xz /install/lld-5.0.2.src.tar.xz
1810
COPY .github/builder/rsrc/cfe-5.0.2.src.tar.xz /install/cfe-5.0.2.src.tar.xz
19-
COPY .github/builder/rsrc/patchelf-0.18.0-x86_64.tar.gz /install/patchelf-0.18.0-x86_64.tar.gz
11+
COPY .github/builder/rsrc/llvm-5.0.2.src.tar.xz /install/llvm-5.0.2.src.tar.xz
12+
COPY .github/builder/rsrc/rpms /install/rpms
13+
14+
RUN yum -y install /install/rpms/*.rpm && yum clean all
2015

2116
RUN chmod +x /install/rustup-init && \
2217
/install/rustup-init -y --default-toolchain nightly && \
@@ -30,8 +25,10 @@ RUN chmod +x /install/rustup-init && \
3025
popd && \
3126
tar -C /usr/local/ --strip-components=1 -xf /install/cmake-3.28.0-rc5-linux-x86_64.tar.gz && \
3227
mkdir -p /llvm/tools/clang && \
28+
mkdir -p /llvm/tools/lld && \
3329
tar -C /llvm --strip-components=1 -xf /install/llvm-5.0.2.src.tar.xz && \
3430
tar -C /llvm/tools/clang --strip-components=1 -xf /install/cfe-5.0.2.src.tar.xz && \
31+
tar -C /llvm/tools/lld --strip-components=1 -xf /install/lld-5.0.2.src.tar.xz && \
3532
mkdir -p /llvm/build && \
3633
pushd /llvm/build && \
3734
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE="MinSizeRel" -DLLVM_TARGETS_TO_BUILD="X86" .. && \
@@ -40,8 +37,7 @@ RUN chmod +x /install/rustup-init && \
4037
make clean && \
4138
rm -rf /llvm/build/ && \
4239
popd && \
43-
rm -rf /make /llvm && \
44-
tar -C /usr/local/ --strip-components=1 -xf /install/patchelf-0.18.0-x86_64.tar.gz
40+
rm -rf /make /llvm
4541

4642
WORKDIR /
4743

@@ -56,9 +52,11 @@ WORKDIR /tsffs/
5652
RUN mkdir -p /simics/ispm && \
5753
tar -C /simics/ispm --strip-components=1 -xf .github/builder/rsrc/ispm.tar.gz && \
5854
ispm settings install-dir /simics && \
59-
ispm packages --install-bundle .github/builder/rsrc/simics.ispm --non-interactive --trust-insecure-packages && \
60-
ls -lah /simics/ && \
55+
ispm packages --install-bundle .github/builder/rsrc/simics.ispm --non-interactive --trust-insecure-packages
56+
57+
RUN RUSTFLAGS="-C linker=clang -C link-arg=-fuse-ld=$(which ld.lld)" && \
58+
export RUSTFLAGS && \
6159
cargo install --path simics-rs/cargo-simics-build && \
62-
cargo simics-build --with-patchelf -r && \
60+
cargo simics-build -r && \
6361
mkdir -p /packages && \
6462
cp target/release/*.ispm /packages

.github/builder/build.sh

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
# NOTE: Do not just copy-paste scripts/build.sh!
44

5+
LLD_URL="https://releases.llvm.org/5.0.2/lld-5.0.2.src.tar.xz"
56
CFE_URL="https://releases.llvm.org/5.0.2/cfe-5.0.2.src.tar.xz"
67
LLVM_SRC_URL="https://releases.llvm.org/5.0.2/llvm-5.0.2.src.tar.xz"
78
MAKE_SRC_URL="https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz"
89
RUSTUP_INIT_URL="https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init"
910
CMAKE_URL="https://github.com/Kitware/CMake/releases/download/v3.28.0-rc5/cmake-3.28.0-rc5-linux-x86_64.tar.gz"
10-
PATCHELF_URL="https://github.com/NixOS/patchelf/releases/download/0.18.0/patchelf-0.18.0-x86_64.tar.gz"
1111
PUBLIC_SIMICS_PKGS_URL="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/ead79ef5-28b5-48c7-8d1f-3cde7760798f/simics-6-packages-2024-05-linux64.ispm"
1212
PUBLIC_SIMICS_ISPM_URL="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/ead79ef5-28b5-48c7-8d1f-3cde7760798f/intel-simics-package-manager-1.8.3-linux64.tar.gz"
1313
PUBLIC_SIMICS_PACKAGE_VERSION_1000="6.0.185"
@@ -31,6 +31,11 @@ if [ ! -f "${BUILDER_DIR}/rsrc/simics.ispm" ]; then
3131
"${PUBLIC_SIMICS_PKGS_URL}"
3232
fi
3333

34+
if [ ! -f "${BUILDER_DIR}/rsrc/lld-5.0.2.src.tar.xz" ]; then
35+
curl --noproxy '*.intel.com' -L -o "${BUILDER_DIR}/rsrc/lld-5.0.2.src.tar.xz" \
36+
"${LLD_URL}"
37+
fi
38+
3439
if [ ! -f "${BUILDER_DIR}/rsrc/cfe-5.0.2.src.tar.xz" ]; then
3540
curl --noproxy '*.intel.com' -L -o "${BUILDER_DIR}/rsrc/cfe-5.0.2.src.tar.xz" \
3641
"${CFE_URL}"
@@ -57,9 +62,13 @@ if [ ! -f "${BUILDER_DIR}/rsrc/cmake-3.28.0-rc5-linux-x86_64.tar.gz" ]; then
5762
"${CMAKE_URL}"
5863
fi
5964

60-
if [ ! -f "${BUILDER_DIR}/rsrc/patchelf-0.18.0-x86_64.tar.gz" ]; then
61-
curl --noproxy '*.intel.com' -L -o "${BUILDER_DIR}/rsrc/patchelf-0.18.0-x86_64.tar.gz" \
62-
"${PATCHELF_URL}"
65+
if [ ! -d "${BUILDER_DIR}/rsrc/rpms" ]; then
66+
echo "RPM dependencies not found. Downloading..."
67+
# NOTE: This may stop working at some point, as Fedora 20 is EOL. Therefore, we download the
68+
# packages with the expectation that we will provide them separately if they are no longer
69+
# available.
70+
docker run -v "${BUILDER_DIR}/rsrc/rpms:/rpms" fedora:20 bash -c \
71+
'yum -y update && yum install --downloadonly --downloaddir=/rpms coreutils gcc gcc-c++ make which && chmod -R 755 /rpms/'
6372
fi
6473

6574
unset SIMICS_BASE

.github/workflows/ci.yml

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ on:
1010
env:
1111
CARGO_TERM_COLOR: always
1212
CFE_URL: "https://releases.llvm.org/5.0.2/cfe-5.0.2.src.tar.xz"
13+
LLD_URL: "https://releases.llvm.org/5.0.2/lld-5.0.2.src.tar.xz"
1314
LLVM_SRC_URL: "https://releases.llvm.org/5.0.2/llvm-5.0.2.src.tar.xz"
1415
MAKE_SRC_URL: "https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz"
1516
RUSTUP_INIT_URL: "https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init"
1617
CMAKE_URL: "https://github.com/Kitware/CMake/releases/download/v3.28.0-rc5/cmake-3.28.0-rc5-linux-x86_64.tar.gz"
17-
PATCHELF_URL: "https://github.com/NixOS/patchelf/releases/download/0.18.0/patchelf-0.18.0-x86_64.tar.gz"
1818
PUBLIC_SIMICS_PKGS_URL_WINDOWS: "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/ead79ef5-28b5-48c7-8d1f-3cde7760798f/simics-6-packages-2024-05-win64.ispm"
1919
# NOTE: We use the old ISPM because there is something wrong with 1.8.3 with unattended installation
2020
# PUBLIC_SIMICS_ISPM_URL_WINDOWS: "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/881ee76a-c24d-41c0-af13-5d89b2a857ff/intel-simics-package-manager-1.7.5-win64.exe"
@@ -23,11 +23,11 @@ env:
2323
PUBLIC_SIMICS_ISPM_URL: "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/ead79ef5-28b5-48c7-8d1f-3cde7760798f/intel-simics-package-manager-1.8.3-linux64.tar.gz"
2424
PUBLIC_SIMICS_PACKAGE_VERSION_1000: "6.0.185"
2525
PUBLIC_SIMICS_ISPM_VERSION: "1.8.3"
26+
BUILDER_LLD_VERSION: "5.0.2"
2627
BUILDER_CFE_VERSION: "5.0.2"
2728
BUILDER_LLVM_VERSION: "5.0.2"
2829
BUILDER_MAKE_VERSION: "4.4.1"
2930
BUILDER_CMAKE_VERSION: "3.28.0-rc5"
30-
BUILDER_PATCHELF_VERSION: "0.18.0"
3131
MINGW_URL: "https://github.com/brechtsanders/winlibs_mingw/releases/download/13.2.0-16.0.6-11.0.0-ucrt-r1/winlibs-x86_64-posix-seh-gcc-13.2.0-llvm-16.0.6-mingw-w64ucrt-11.0.0-r1.7z"
3232
MINGW_VERSION: "13.2.0-16.0.6-11.0.0-ucrt-r1"
3333

@@ -50,7 +50,7 @@ jobs:
5050
id: cache-simics-packages
5151
uses: actions/cache@v4
5252
with:
53-
path: ~/simics
53+
path: "${HOME}/simics"
5454
key: simics-linux-${{ env.PUBLIC_SIMICS_PACKAGE_VERSION_1000 }}-${{ env.PUBLIC_SIMICS_ISPM_VERSION }}
5555

5656
- name: Install SIMICS (External)
@@ -78,8 +78,7 @@ jobs:
7878
run: |
7979
mkdir bin && \
8080
cp "${HOME}/simics/simics-${{ env.PUBLIC_SIMICS_PACKAGE_VERSION_1000 }}/linux64/bin/craff" bin/craff && \
81-
cp "${HOME}/simics/simics-${{ env.PUBLIC_SIMICS_PACKAGE_VERSION_1000 }}/linux64/bin/craff-fs" bin/craff-fs && \
82-
rm -rf "${HOME}/simics/"
81+
cp "${HOME}/simics/simics-${{ env.PUBLIC_SIMICS_PACKAGE_VERSION_1000 }}/linux64/bin/craff-fs" bin/craff-fs
8382
8483
- name: Upload Test Artifacts
8584
uses: actions/upload-artifact@v4
@@ -483,7 +482,7 @@ jobs:
483482
484483
- name: Test Project
485484
run: |
486-
SIMICS_TEST_CLEANUP_EACH=1 SIMICS_TEST_LOCAL_PACKAGES_ONLY=1 cargo test --no-fail-fast -r || ( echo "❗ Tests failed" && exit 1 )
485+
SIMICS_TEST_CLEANUP_EACH=1 SIMICS_TEST_LOCAL_PACKAGES_ONLY=1 cargo test --no-fail-fast -r _latest || ( echo "❗ Tests failed" && exit 1 )
487486
echo "✅ Tests passed"
488487
489488
- name: Build Docs
@@ -593,7 +592,7 @@ jobs:
593592
uses: actions/cache@v4
594593
with:
595594
path: .github/builder/rsrc
596-
key: "cache-builder-dependencies-${{ env.PUBLIC_SIMICS_ISPM_VERSION }}-${{ env.BUILDER_CFE_VERSION }}-${{ env.BUILDER_LLVM_VERSION }}-${{ env.BUILDER_MAKE_VERSION }}-${{ env.BUILDER_CMAKE_VERSION }}"
595+
key: "cache-builder-dependencies-${{ env.PUBLIC_SIMICS_ISPM_VERSION }}-${{ env.BUILDER_LLD_VERSION }}-${{ env.BUILDER_CFE_VERSION }}-${{ env.BUILDER_LLVM_VERSION }}-${{ env.BUILDER_MAKE_VERSION }}-${{ env.BUILDER_CMAKE_VERSION }}"
597596

598597
- name: Download Builder Dependencies
599598
if: ${{ steps.cache-builder-dependencies.outputs.cache-hit != 'true' }}
@@ -605,6 +604,8 @@ jobs:
605604
"${{ env.PUBLIC_SIMICS_PKGS_URL }}"
606605
curl -L -o .github/builder/rsrc/cfe-5.0.2.src.tar.xz \
607606
"${{ env.CFE_URL }}"
607+
curl -L -o .github/builder/rsrc/lld-5.0.2.src.tar.xz \
608+
"${{ env.LLD_URL }}"
608609
curl -L -o .github/builder/rsrc/llvm-5.0.2.src.tar.xz \
609610
"${{ env.LLVM_SRC_URL }}"
610611
curl -L -o .github/builder/rsrc/make-4.4.1.tar.gz \
@@ -614,8 +615,8 @@ jobs:
614615
chmod +x .github/builder/rsrc/rustup-init
615616
curl -L -o .github/builder/rsrc/cmake-3.28.0-rc5-linux-x86_64.tar.gz \
616617
"${{ env.CMAKE_URL }}"
617-
curl -L -o .github/builder/rsrc/patchelf-0.18.0-x86_64.tar.gz \
618-
"${{ env.PATCHELF_URL}}"
618+
docker run -v "$(pwd)/.github/builder/rsrc/rpms:/rpms" fedora:20 bash -c \
619+
'yum -y update && yum install --downloadonly --downloaddir=/rpms coreutils gcc gcc-c++ make which && chmod -R 755 /rpms/'
619620
620621
- name: Build Distribution Package
621622
run: |

scripts/build.sh

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@
33
# Copyright (C) 2024 Intel Corporation
44
# SPDX-License-Identifier: Apache-2.0
55

6+
7+
LLD_URL="https://releases.llvm.org/5.0.2/lld-5.0.2.src.tar.xz"
68
CFE_URL="https://releases.llvm.org/5.0.2/cfe-5.0.2.src.tar.xz"
79
LLVM_SRC_URL="https://releases.llvm.org/5.0.2/llvm-5.0.2.src.tar.xz"
810
MAKE_SRC_URL="https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz"
911
RUSTUP_INIT_URL="https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init"
1012
CMAKE_URL="https://github.com/Kitware/CMake/releases/download/v3.28.0-rc5/cmake-3.28.0-rc5-linux-x86_64.tar.gz"
11-
PATCHELF_URL="https://github.com/NixOS/patchelf/releases/download/0.18.0/patchelf-0.18.0-x86_64.tar.gz"
1213
PUBLIC_SIMICS_PKGS_URL="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/ead79ef5-28b5-48c7-8d1f-3cde7760798f/simics-6-packages-2024-05-linux64.ispm"
1314
PUBLIC_SIMICS_ISPM_URL="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/ead79ef5-28b5-48c7-8d1f-3cde7760798f/intel-simics-package-manager-1.8.3-linux64.tar.gz"
1415
PUBLIC_SIMICS_PACKAGE_VERSION_1000="6.0.185"
@@ -22,44 +23,61 @@ CONTAINER_NAME="${IMAGE_NAME}-tmp-${CONTAINER_UID}"
2223
mkdir -p "${BUILDER_DIR}/rsrc"
2324

2425
if [ ! -f "${BUILDER_DIR}/rsrc/ispm.tar.gz" ]; then
26+
echo "ISPM not found. Downloading..."
2527
curl --noproxy '*.intel.com' -L -o "${BUILDER_DIR}/rsrc/ispm.tar.gz" \
2628
"${PUBLIC_SIMICS_ISPM_URL}"
2729
fi
2830

2931
if [ ! -f "${BUILDER_DIR}/rsrc/simics.ispm" ]; then
32+
echo "Simics not found. Downloading..."
3033
curl --noproxy '*.intel.com' -L -o "${BUILDER_DIR}/rsrc/simics.ispm" \
3134
"${PUBLIC_SIMICS_PKGS_URL}"
3235
fi
3336

37+
if [ ! -f "${BUILDER_DIR}/rsrc/lld-5.0.2.src.tar.xz" ]; then
38+
echo "LLD not found. Downloading..."
39+
curl --noproxy '*.intel.com' -L -o "${BUILDER_DIR}/rsrc/lld-5.0.2.src.tar.xz" \
40+
"${LLD_URL}"
41+
fi
42+
3443
if [ ! -f "${BUILDER_DIR}/rsrc/cfe-5.0.2.src.tar.xz" ]; then
44+
echo "CFE not found. Downloading..."
3545
curl --noproxy '*.intel.com' -L -o "${BUILDER_DIR}/rsrc/cfe-5.0.2.src.tar.xz" \
3646
"${CFE_URL}"
3747
fi
3848

3949
if [ ! -f "${BUILDER_DIR}/rsrc/llvm-5.0.2.src.tar.xz" ]; then
50+
echo "LLVM not found. Downloading..."
4051
curl --noproxy '*.intel.com' -L -o "${BUILDER_DIR}/rsrc/llvm-5.0.2.src.tar.xz" \
4152
"${LLVM_SRC_URL}"
4253
fi
4354

4455
if [ ! -f "${BUILDER_DIR}/rsrc/make-4.4.1.tar.gz" ]; then
56+
echo "Make not found. Downloading..."
4557
curl --noproxy '*.intel.com' -L -o "${BUILDER_DIR}/rsrc/make-4.4.1.tar.gz" \
4658
"${MAKE_SRC_URL}"
4759
fi
4860

4961
if [ ! -f "${BUILDER_DIR}/rsrc/rustup-init" ]; then
62+
echo "rustup not found. Downloading..."
5063
curl --noproxy '*.intel.com' -L -o "${BUILDER_DIR}/rsrc/rustup-init" \
5164
"${RUSTUP_INIT_URL}"
5265
chmod +x "${BUILDER_DIR}/rsrc/rustup-init"
5366
fi
5467

5568
if [ ! -f "${BUILDER_DIR}/rsrc/cmake-3.28.0-rc5-linux-x86_64.tar.gz" ]; then
69+
echo "CMake not found. Downloading..."
5670
curl --noproxy '*.intel.com' -L -o "${BUILDER_DIR}/rsrc/cmake-3.28.0-rc5-linux-x86_64.tar.gz" \
5771
"${CMAKE_URL}"
5872
fi
5973

60-
if [ ! -f "${BUILDER_DIR}/rsrc/patchelf-0.18.0-x86_64.tar.gz" ]; then
61-
curl --noproxy '*.intel.com' -L -o "${BUILDER_DIR}/rsrc/patchelf-0.18.0-x86_64.tar.gz" \
62-
"${PATCHELF_URL}"
74+
if [ ! -d "${BUILDER_DIR}/rsrc/rpms" ]; then
75+
echo "RPM dependencies not found. Downloading..."
76+
# NOTE: This may stop working at some point, as Fedora 20 is EOL. Therefore, we download the
77+
# packages with the expectation that we will provide them separately if they are no longer
78+
# available.
79+
docker run -v "${BUILDER_DIR}/rsrc/rpms:/rpms" fedora:20 bash -c \
80+
'yum -y update && yum install --downloadonly --downloaddir=/rpms coreutils gcc gcc-c++ make which && chmod -R 755 /rpms/'
6381
fi
6482

6583
unset SIMICS_BASE

simics-rs/cargo-simics-build/src/lib.rs

Lines changed: 1 addition & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,6 @@ pub enum SimicsBuildCmd {
105105
args: Args,
106106
#[clap(long)]
107107
simics_base: Option<PathBuf>,
108-
#[clap(long)]
109-
with_patchelf: bool,
110108
},
111109
}
112110

@@ -116,11 +114,7 @@ type Result<T> = std::result::Result<T, Error>;
116114

117115
impl App {
118116
pub fn run(cmd: Cmd) -> Result<PathBuf> {
119-
let SimicsBuildCmd::SimicsBuild {
120-
args,
121-
simics_base,
122-
with_patchelf,
123-
} = cmd.simics_build;
117+
let SimicsBuildCmd::SimicsBuild { args, simics_base } = cmd.simics_build;
124118

125119
let subcommand = Subcommand::new(args)?;
126120
let cargo = var("CARGO")?;
@@ -235,46 +229,6 @@ impl App {
235229

236230
signed.write(&signed_module_cdylib)?;
237231

238-
signed_module_cdylib = signed_module_cdylib.canonicalize()?;
239-
240-
if with_patchelf {
241-
// We need to use patchelf to replace absolute paths to shared objects with
242-
// just names
243-
String::from_utf8(
244-
Command::new("patchelf")
245-
.arg("--print-needed")
246-
.arg(&signed_module_cdylib)
247-
.check()?
248-
.stdout,
249-
)?
250-
.lines()
251-
.filter(|l| l.starts_with('/'))
252-
.try_for_each(|l| {
253-
let path = PathBuf::from(l);
254-
let file_name = path
255-
.file_name()
256-
.ok_or_else(|| Error::NoFilename {
257-
path: PathBuf::from(l),
258-
})?
259-
.to_str()
260-
.ok_or_else(|| Error::NoFilename {
261-
path: PathBuf::from(l),
262-
})?;
263-
println!("Replacing needed library {} with {}", l, file_name);
264-
Command::new("patchelf")
265-
.arg("--remove-needed")
266-
.arg(&l)
267-
.arg(&signed_module_cdylib)
268-
.check()?;
269-
Command::new("patchelf")
270-
.arg("--add-needed")
271-
.arg(file_name)
272-
.arg(&signed_module_cdylib)
273-
.check()?;
274-
Ok::<(), Error>(())
275-
})?;
276-
}
277-
278232
let target_profile_build_dir = subcommand.build_dir(subcommand.target()).join("build");
279233

280234
// Find interfaces

simics-rs/docs/src/SUMMARY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Summary
22

3-
- [Chapter 1](./chapter_1.md)
3+
- [Build Directives](./build-directives.md)

simics-rs/docs/src/chapter_1.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)