Skip to content

Commit 5d87c19

Browse files
committed
Merge branch 'main' into vm_trait
2 parents 7e02b7e + 2b208b2 commit 5d87c19

Some content is hidden

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

46 files changed

+302
-938
lines changed

.github/workflows/Benchmarks.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,7 @@ jobs:
4343
- name: Copy Guest Binaries
4444
run: |
4545
cp ./downloaded-guest-binaries-release/callbackguest ./src/tests/rust_guests/bin/release/callbackguest
46-
cp ./downloaded-guest-binaries-release/callbackguest.exe ./src/tests/rust_guests/bin/release/callbackguest.exe
4746
cp ./downloaded-guest-binaries-release/simpleguest ./src/tests/rust_guests/bin/release/simpleguest
48-
cp ./downloaded-guest-binaries-release/simpleguest.exe ./src/tests/rust_guests/bin/release/simpleguest.exe
4947
cp ./downloaded-guest-binaries-release/dummyguest ./src/tests/rust_guests/bin/release/dummyguest
5048
5149
### Benchmarks ###

.github/workflows/CreateRelease.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,6 @@ jobs:
166166
benchmarks_Linux_mshv3_amd.tar.gz \
167167
benchmarks_Linux_mshv3_intel.tar.gz \
168168
hyperlight-guest-c-api-linux.tar.gz \
169-
hyperlight-guest-c-api-windows.tar.gz \
170169
include.tar.gz
171170
env:
172171
GH_TOKEN: ${{ github.token }}
@@ -185,7 +184,6 @@ jobs:
185184
benchmarks_Linux_mshv3_amd.tar.gz \
186185
benchmarks_Linux_mshv3_intel.tar.gz \
187186
hyperlight-guest-c-api-linux.tar.gz \
188-
hyperlight-guest-c-api-windows.tar.gz \
189187
include.tar.gz
190188
env:
191189
GH_TOKEN: ${{ github.token }}

.github/workflows/dep_build_guest_binaries.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@ jobs:
4646
name: guest-binaries-${{ matrix.config }}
4747
path: |
4848
src\tests\rust_guests\bin\${{ matrix.config }}\callbackguest
49-
src\tests\rust_guests\bin\${{ matrix.config }}\callbackguest.exe
5049
src\tests\rust_guests\bin\${{ matrix.config }}\dummyguest
5150
src\tests\rust_guests\bin\${{ matrix.config }}\simpleguest
52-
src\tests\rust_guests\bin\${{ matrix.config }}\simpleguest.exe
5351
if-no-files-found: error

.github/workflows/dep_rust.yml

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,16 @@ jobs:
7979
shell: pwsh
8080

8181
- name: Build and move Rust guests
82-
run: just build-and-move-rust-guests
82+
run: |
83+
# use these commands in favor of build-and-move-rust-guests to avoid building both configs
84+
just build-rust-guests ${{ matrix.config }}
85+
just move-rust-guests ${{ matrix.config }}
8386
8487
- name: Build c guests
85-
run: just build-and-move-c-guests
86-
88+
run: |
89+
# use these commands in favor of build-and-move-c-guests to avoid building both configs
90+
just build-c-guests ${{ matrix.config }}
91+
just move-c-guests ${{ matrix.config }}
8792
- name: Build
8893
run: just build ${{ matrix.config }}
8994

@@ -97,8 +102,8 @@ jobs:
97102
# with default features
98103
just test ${{ matrix.config }} ${{ matrix.hypervisor == 'mshv3' && 'mshv3' || ''}}
99104
100-
# with only one driver enabled (driver mshv/kvm feature is ignored on windows) + seccomp + inprocess
101-
just test ${{ matrix.config }} inprocess,seccomp,${{ matrix.hypervisor == 'mshv' && 'mshv2' || matrix.hypervisor == 'mshv3' && 'mshv3' || 'kvm' }}
105+
# with only one driver enabled (driver mshv/kvm feature is ignored on windows) + seccomp
106+
just test ${{ matrix.config }} seccomp,${{ matrix.hypervisor == 'mshv' && 'mshv2' || matrix.hypervisor == 'mshv3' && 'mshv3' || 'kvm' }}
102107
103108
# make sure certain cargo features compile
104109
cargo check -p hyperlight-host --features crashdump

Justfile

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,8 @@ root := justfile_directory()
1010

1111
default-target := "debug"
1212
simpleguest_source := "src/tests/rust_guests/simpleguest/target/x86_64-unknown-none"
13-
simpleguest_msvc_source := "src/tests/rust_guests/simpleguest/target/x86_64-pc-windows-msvc"
1413
dummyguest_source := "src/tests/rust_guests/dummyguest/target/x86_64-unknown-none"
1514
callbackguest_source := "src/tests/rust_guests/callbackguest/target/x86_64-unknown-none"
16-
callbackguest_msvc_source := "src/tests/rust_guests/callbackguest/target/x86_64-pc-windows-msvc"
1715
rust_guests_bin_dir := "src/tests/rust_guests/bin"
1816

1917
################
@@ -32,16 +30,12 @@ guests: build-and-move-rust-guests build-and-move-c-guests
3230

3331
build-rust-guests target=default-target:
3432
cd src/tests/rust_guests/callbackguest && cargo build --profile={{ if target == "debug" { "dev" } else { target } }}
35-
cd src/tests/rust_guests/callbackguest && cargo build --profile={{ if target == "debug" { "dev" } else { target } }} --target=x86_64-pc-windows-msvc
3633
cd src/tests/rust_guests/simpleguest && cargo build --profile={{ if target == "debug" { "dev" } else { target } }}
37-
cd src/tests/rust_guests/simpleguest && cargo build --profile={{ if target == "debug" { "dev" } else { target } }} --target=x86_64-pc-windows-msvc
3834
cd src/tests/rust_guests/dummyguest && cargo build --profile={{ if target == "debug" { "dev" } else { target } }}
3935

4036
@move-rust-guests target=default-target:
4137
cp {{ callbackguest_source }}/{{ target }}/callbackguest* {{ rust_guests_bin_dir }}/{{ target }}/
42-
cp {{ callbackguest_msvc_source }}/{{ target }}/callbackguest* {{ rust_guests_bin_dir }}/{{ target }}/
4338
cp {{ simpleguest_source }}/{{ target }}/simpleguest* {{ rust_guests_bin_dir }}/{{ target }}/
44-
cp {{ simpleguest_msvc_source }}/{{ target }}/simpleguest* {{ rust_guests_bin_dir }}/{{ target }}/
4539
cp {{ dummyguest_source }}/{{ target }}/dummyguest* {{ rust_guests_bin_dir }}/{{ target }}/
4640

4741
build-and-move-rust-guests: (build-rust-guests "debug") (move-rust-guests "debug") (build-rust-guests "release") (move-rust-guests "release")
@@ -67,8 +61,8 @@ test-like-ci config=default-target hypervisor="kvm":
6761
@# with default features
6862
just test {{config}} {{ if hypervisor == "mshv3" {"mshv3"} else {""} }}
6963

70-
@# with only one driver enabled + seccomp + inprocess
71-
just test {{config}} inprocess,seccomp,{{ if hypervisor == "mshv" {"mshv2"} else if hypervisor == "mshv3" {"mshv3"} else {"kvm"} }}
64+
@# with only one driver enabled + seccomp
65+
just test {{config}} seccomp,{{ if hypervisor == "mshv" {"mshv2"} else if hypervisor == "mshv3" {"mshv3"} else {"kvm"} }}
7266

7367
@# make sure certain cargo features compile
7468
cargo check -p hyperlight-host --features crashdump
@@ -184,7 +178,6 @@ tar-headers: (build-rust-capi) # build-rust-capi is a dependency because we need
184178
tar -zcvf include.tar.gz -C {{root}}/src/hyperlight_guest/third_party/ musl/include musl/arch/x86_64 printf/printf.h -C {{root}}/src/hyperlight_guest_capi include
185179

186180
tar-static-lib: (build-rust-capi "release") (build-rust-capi "debug")
187-
tar -zcvf hyperlight-guest-c-api-windows.tar.gz -C {{root}}/target/x86_64-pc-windows-msvc/ release/hyperlight_guest_capi.lib -C {{root}}/target/x86_64-pc-windows-msvc/ debug/hyperlight_guest_capi.lib
188181
tar -zcvf hyperlight-guest-c-api-linux.tar.gz -C {{root}}/target/x86_64-unknown-none/ release/libhyperlight_guest_capi.a -C {{root}}/target/x86_64-unknown-none/ debug/libhyperlight_guest_capi.a
189182

190183
# Create release notes for the given tag. The expected format is a v-prefixed version number, e.g. v0.2.0
@@ -253,4 +246,4 @@ install-vcpkg:
253246
cd ../vcpkg && ./bootstrap-vcpkg{{ bin-suffix }} && ./vcpkg integrate install || cd -
254247

255248
install-flatbuffers-with-vcpkg: install-vcpkg
256-
cd ../vcpkg && ./vcpkg install flatbuffers || cd -
249+
cd ../vcpkg && ./vcpkg install flatbuffers || cd -

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ fn main() -> hyperlight_host::Result<()> {
4444
hyperlight_host::GuestBinary::FilePath(hyperlight_testing::simple_guest_as_string().unwrap()),
4545
None, // default configuration
4646
None, // default run options
47-
None, // default host print function
4847
)?;
4948

5049
// Registering a host function makes it available to be called by the guest
@@ -255,6 +254,7 @@ Hyperlight.
255254

256255
> Note: For general Hyperlight development, you may also need flatc (Flatbuffer compiler): for instructions,
257256
> see [here](https://github.com/google/flatbuffers).
257+
> Copyright © contributors to Hyperlight, established as Hyperlight a Series of LF Projects, LLC.
258258

259259
## Join our Community Meetings
260260

c.just

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,9 @@
11
mkdir := if os() == "windows" { "mkdir -f -p" } else { "mkdir -p"}
22

3-
# PE options
4-
c-compile-options-pe := '/GS /W3 /Zi /Od /fp:precise /WX- /std:c17 /showIncludes /MT /EHsc /nologo /diagnostics:column'
5-
c-linker-options-pe := '/MANIFEST:NO /NXCOMPAT /HEAP:131072,131072 /STACK:65536,65536 /DEBUG /RELEASE /ENTRY:"entrypoint" /ALIGN:4096 /FILEALIGN:4096 /NODEFAULTLIB /SAFESEH:NO /driver /SUBSYSTEM:NATIVE /MACHINE:x64 /DYNAMICBASE /TSAWARE:no /section:.text,ERP /section:.rdata,RP /section:.data,RWP /section:.pdata,RP'
6-
c-include-flags-pe := "/I " + root / "src/hyperlight_guest_capi/include/" + " /I " + root / "src/hyperlight_guest/third_party/musl/include/" + " /I " + root / "src/hyperlight_guest/third_party/musl/arch/x86_64" + " /I " + root / "src/hyperlight_guest/third_party/printf"
7-
c-flags-debug-pe := '/Od /Ob0 /Z7'
8-
c-flags-release-pe := '/O2 /Gy'
9-
103
# Elf options
114
# We don't support stack protectors at the moment, but Arch Linux clang auto-enables them for -linux platforms, so explicitly disable them.
125
c-compile-options-elf := '-nobuiltininc -H --target=x86_64-unknown-linux-none -fno-stack-protector -fstack-clash-protection -mstack-probe-size=4096 -fPIC'
13-
c-include-flags-elf := replace(c-include-flags-pe, '/I ', '-I ')
6+
c-include-flags-elf := "-I " + root / "src/hyperlight_guest_capi/include/" + " -I " + root / "src/hyperlight_guest/third_party/musl/include/" + " -I " + root / "src/hyperlight_guest/third_party/musl/arch/x86_64" + " -I " + root / "src/hyperlight_guest/third_party/printf"
147
c-linker-options-elf := '--entry "entrypoint" --nostdlib -pie'
158
c-flags-debug-elf := '-O0'
169
c-flags-release-elf := '-O3'
@@ -19,25 +12,18 @@ build-c-guests target=default-target: (build-rust-capi target) (compile-c-guest
1912

2013
build-rust-capi target=default-target:
2114
cd src/hyperlight_guest_capi && cargo build --profile {{ if target == "debug" { "dev" } else { target } }}
22-
cd src/hyperlight_guest_capi && cargo build --profile {{ if target == "debug" { "dev" } else { target } }} --target x86_64-pc-windows-msvc
2315

2416
compile-c-guest target=default-target:
25-
cd src/tests/c_guests/c_simpleguest && {{ mkdir }} "./out/{{target}}" && clang-cl /c main.c {{ c-compile-options-pe }} {{ if target == "debug" { c-flags-debug-pe } else { c-flags-release-pe } }} {{c-include-flags-pe}} /Fo"out/{{ target }}/main.obj"
26-
cd src/tests/c_guests/c_callbackguest && {{ mkdir }} "./out/{{target}}" && clang-cl /c main.c {{ c-compile-options-pe }} {{ if target == "debug" { c-flags-debug-pe } else { c-flags-release-pe } }} {{c-include-flags-pe}} /Fo"out/{{ target }}/main.obj"
2717
# elf
28-
cd src/tests/c_guests/c_simpleguest && clang -c {{ c-compile-options-elf }} {{ if target == "debug" { c-flags-debug-elf } else { c-flags-release-elf } }} main.c {{c-include-flags-elf}} -o "out/{{ target }}/main.o"
29-
cd src/tests/c_guests/c_callbackguest && clang -c {{ c-compile-options-elf }} {{ if target == "debug" { c-flags-debug-elf } else { c-flags-release-elf } }} main.c {{c-include-flags-elf}} -o "out/{{ target }}/main.o"
18+
cd src/tests/c_guests/c_simpleguest && {{ mkdir }} "./out/{{target}}" && clang -c {{ c-compile-options-elf }} {{ if target == "debug" { c-flags-debug-elf } else { c-flags-release-elf } }} main.c {{c-include-flags-elf}} -o "out/{{ target }}/main.o"
19+
cd src/tests/c_guests/c_callbackguest && {{ mkdir }} "./out/{{target}}" && clang -c {{ c-compile-options-elf }} {{ if target == "debug" { c-flags-debug-elf } else { c-flags-release-elf } }} main.c {{c-include-flags-elf}} -o "out/{{ target }}/main.o"
3020

3121
link-c-guest target=default-target:
32-
cd src/tests/c_guests/c_simpleguest && lld-link /OUT:./out/{{ target }}/simpleguest.exe /PDB:./out/{{ target }}/simpleguest.pdb {{c-linker-options-pe}} out/{{ target }}/main.obj {{justfile_directory()}}/target/x86_64-pc-windows-msvc/{{ target }}/hyperlight_guest_capi.lib
33-
cd src/tests/c_guests/c_callbackguest && lld-link /OUT:./out/{{ target }}/callbackguest.exe /PDB:./out/{{ target }}/callbackguest.pdb {{c-linker-options-pe}} out/{{ target }}/main.obj {{justfile_directory()}}/target/x86_64-pc-windows-msvc/{{ target }}/hyperlight_guest_capi.lib
3422
# elf
3523
cd src/tests/c_guests/c_simpleguest && ld.lld -o out/{{target}}/simpleguest {{c-linker-options-elf}} out/{{target}}/main.o -l hyperlight_guest_capi -L "{{justfile_directory()}}/target/x86_64-unknown-none/{{target}}"
3624
cd src/tests/c_guests/c_callbackguest && ld.lld -o out/{{target}}/callbackguest {{c-linker-options-elf}} out/{{target}}/main.o -l hyperlight_guest_capi -L "{{justfile_directory()}}/target/x86_64-unknown-none/{{target}}"
3725

3826
move-c-guests target=default-target:
39-
cp src/tests/c_guests/c_simpleguest/out/{{target}}/simpleguest.exe src/tests/c_guests/bin/{{target}}/
40-
cp src/tests/c_guests/c_callbackguest/out/{{target}}/callbackguest.exe src/tests/c_guests/bin/{{target}}/
4127
# elf
4228
cp src/tests/c_guests/c_simpleguest/out/{{target}}/simpleguest src/tests/c_guests/bin/{{target}}/
4329
cp src/tests/c_guests/c_callbackguest/out/{{target}}/callbackguest src/tests/c_guests/bin/{{target}}/

docs/debugging-hyperlight.md

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

fuzz/fuzz_targets/guest_call.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ fuzz_target!(
3636
GuestBinary::FilePath(simple_guest_for_fuzzing_as_string().expect("Guest Binary Missing")),
3737
None,
3838
None,
39-
None,
4039
)
4140
.unwrap();
4241

fuzz/fuzz_targets/host_call.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ use std::sync::{Mutex, OnceLock};
2020

2121
use hyperlight_host::func::{ParameterValue, ReturnType};
2222
use hyperlight_host::sandbox::uninitialized::GuestBinary;
23-
use hyperlight_host::sandbox::SandboxConfiguration;
2423
use hyperlight_host::sandbox_state::sandbox::EvolvableSandbox;
2524
use hyperlight_host::sandbox_state::transition::Noop;
2625
use hyperlight_host::{HyperlightError, MultiUseSandbox, UninitializedSandbox};
@@ -36,7 +35,6 @@ fuzz_target!(
3635
GuestBinary::FilePath(simple_guest_for_fuzzing_as_string().expect("Guest Binary Missing")),
3736
None,
3837
None,
39-
None,
4038
)
4139
.unwrap();
4240

0 commit comments

Comments
 (0)