Skip to content

Commit 2bcbfc1

Browse files
committed
Remove i686-guest, nanvix-unstable and guest-counter features
Removes the experimental 32-bit i686 guest support along with the nanvix-unstable and guest-counter cargo features that depended on or accompanied it. This deletes the i686 arch modules, the PEB file-mapping plumbing (labels, preallocated FileMappingInfo array), the GuestCounter API, and the associated cfg gating, tests, Justfile recipes, CI matrix entries and docs. As part of the cleanup, the ReadableSharedMemory trait machinery in mem::layout is now gated on a precise 'readable_shared_mem' cfg alias (gdb debug path or shared-snapshot mem_profile path) instead of a blanket Signed-off-by: Simon Davies <simongdavies@users.noreply.github.com> #[allow(unused)], so it is compiled out entirely when unused.
1 parent 2a85a4a commit 2bcbfc1

38 files changed

Lines changed: 112 additions & 1924 deletions

File tree

.github/workflows/dep_code_checks.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,6 @@ jobs:
8282
- name: Verify MSRV
8383
run: ./dev/verify-msrv.sh hyperlight-host hyperlight-guest hyperlight-guest-bin hyperlight-common
8484

85-
- name: Check 32-bit builds (Nanvix compatibility)
86-
run: |
87-
rustup target add i686-unknown-linux-gnu
88-
just check-i686 debug
89-
9085
- name: Check cargo features compile
9186
run: just check
9287

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
44

55
## [Prerelease] - Unreleased
66

7+
### Removed
8+
* Removed the experimental `i686-guest`, `nanvix-unstable`, and `guest-counter` feature flags, along with 32-bit (i686) guest support and its page-table/snapshot code paths. Hyperlight guests are now 64-bit only (x86_64 and aarch64).
9+
710
## [v0.15.0] - 2026-05-06
811

912
### Added

Justfile

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,6 @@ code-checks-like-ci config=default-target hypervisor="kvm":
124124
@# Verify MSRV
125125
./dev/verify-msrv.sh hyperlight-common hyperlight-guest hyperlight-guest-bin hyperlight-host hyperlight-component-util hyperlight-component-macro hyperlight-guest-tracing
126126

127-
@# Check 32-bit guests
128-
{{ if os() == "linux" { "just check-i686 " + config } else { "" } }}
129-
130127
@# Check cargo features compile
131128
just check
132129

@@ -265,14 +262,6 @@ test-rust-tracing target=default-target features="":
265262
{{ cargo-cmd }} test -p hyperlight-common -F trace_guest --profile={{ if target == "debug" { "dev" } else { target } }} {{ target-triple-flag }}
266263
{{ cargo-cmd }} test -p hyperlight-host --profile={{ if target == "debug" { "dev" } else { target } }} {{ if features =="" {'--features trace_guest'} else { "--features trace_guest," + features } }} {{ target-triple-flag }}
267264

268-
# verify hyperlight-common and hyperlight-guest build for 32-bit (for Nanvix compatibility - uses i686 as proxy for Nanvix's custom 32-bit x86 target)
269-
check-i686 target=default-target:
270-
cargo check -p hyperlight-common --target i686-unknown-linux-gnu --profile={{ if target == "debug" { "dev" } else { target } }}
271-
cargo check -p hyperlight-guest --target i686-unknown-linux-gnu --profile={{ if target == "debug" { "dev" } else { target } }}
272-
cargo check -p hyperlight-common --target i686-unknown-linux-gnu --features i686-guest --profile={{ if target == "debug" { "dev" } else { target } }}
273-
# Verify that trace_guest correctly fails on i686 (compile_error should trigger)
274-
! cargo check -p hyperlight-guest --target i686-unknown-linux-gnu --features trace_guest --profile={{ if target == "debug" { "dev" } else { target } }} 2>/dev/null
275-
276265
test-doc target=default-target features="":
277266
{{ cargo-cmd }} test --profile={{ if target == "debug" { "dev" } else { target } }} {{ target-triple-flag }} {{ if features =="" {''} else { "--features " + features } }} --doc
278267

@@ -292,9 +281,8 @@ check:
292281
{{ cargo-cmd }} check -p hyperlight-host --features print_debug {{ target-triple-flag }}
293282
{{ cargo-cmd }} check -p hyperlight-host --features gdb {{ target-triple-flag }}
294283
{{ cargo-cmd }} check -p hyperlight-host --features trace_guest,mem_profile {{ target-triple-flag }}
295-
{{ cargo-cmd }} check -p hyperlight-host --features i686-guest {{ target-triple-flag }}
296-
{{ cargo-cmd }} check -p hyperlight-host --features i686-guest,executable_heap {{ target-triple-flag }}
297284
{{ cargo-cmd }} check -p hyperlight-host --features hw-interrupts {{ target-triple-flag }}
285+
{{ cargo-cmd }} check -p hyperlight-host --features executable_heap {{ target-triple-flag }}
298286

299287
fmt-check: (ensure-nightly-fmt)
300288
cargo +{{nightly-toolchain}} fmt --all -- --check

flake.nix

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@
8282
"x86_64-unknown-linux-gnu"
8383
"x86_64-pc-windows-msvc" "x86_64-unknown-none"
8484
"wasm32-wasip1" "wasm32-wasip2" "wasm32-unknown-unknown"
85-
"i686-unknown-linux-gnu"
8685
];
8786
extensions = [ "rust-src" ] ++ (if args.channel == "nightly" then [ "miri-preview" ] else []);
8887
});

src/hyperlight_common/Cargo.toml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,6 @@ fuzzing = ["dep:arbitrary"]
3434
trace_guest = []
3535
mem_profile = []
3636
std = ["thiserror/std", "log/std", "tracing/std"]
37-
i686-guest = []
38-
nanvix-unstable = ["i686-guest"]
39-
guest-counter = []
4037

4138
[dev-dependencies]
4239
quickcheck = "1.0.3"

src/hyperlight_common/src/arch/amd64/vmem.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -333,10 +333,6 @@ unsafe fn map_page<
333333
/// independently and emits all leaves as `ThisSpace`. Aliased
334334
/// intermediate-table detection is not implemented here because no
335335
/// current embedder exercises that pattern on amd64.
336-
///
337-
/// TODO: align with the i686 implementation and detect aliased
338-
/// intermediate tables to avoid semantic divergence across arches.
339-
/// Tracking: follow-up issue.
340336
#[allow(clippy::missing_safety_doc)]
341337
pub unsafe fn walk_va_spaces<Op: TableReadOps>(
342338
op: &Op,

src/hyperlight_common/src/arch/i686/layout.rs

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

0 commit comments

Comments
 (0)