Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
3e5e49f
[nix] Make devShells.default work for more than just x86_64-linux
syntactically May 26, 2026
c1bcf46
Only pass `page_size` to `HyperlightVm` once
syntactically May 10, 2026
cee3d17
[aarch64] Fix stub compilation
syntactically May 10, 2026
e5dc3ff
[hyperlight_libc] Support building picolibc for aarch64
syntactically May 10, 2026
a55b2fd
[simpleguest] cfg-gate functions that do not compile on aarch64
syntactically May 10, 2026
7c1222e
Rename MAX_{GPA,GVA} to SCRATCH_TOP_{GPA,GVA}
syntactically May 18, 2026
1926aa6
Justfile: add support for compiling for aarch64
syntactically May 23, 2026
5519331
HyperlightVm: allow hypervisor backends to implement reset_vcpu
syntactically May 23, 2026
06f1a62
[hyperlight_guest_bin] Make `init_stack` architecture-independent
syntactically May 23, 2026
053c345
Extract UpdateParentTable from amd64 arch-specific to generic vmem code
syntactically May 26, 2026
fbd0a3f
aarch64: add memory layout
syntactically May 26, 2026
05a508e
hyperlight_guest_bin: move exposed virtual memory operations to arch-…
syntactically May 26, 2026
6c00b70
aarch64: add virtual memory operations
syntactically May 26, 2026
348b8b9
[hyperlight_host] aarch64: add basic register handling for KVM
syntactically May 26, 2026
97cfa0f
[hyperlight_guest_bin] aarch64: support MMIO exits
syntactically May 26, 2026
db41509
[hyperlight_guest] aarch64: Implement simple physical page allocator
syntactically May 26, 2026
456e4bd
[hyperlight_guest_bin] aarch64: add basic exception handlers
syntactically May 26, 2026
893ebfb
[hyperlight_guest_bin] aarch64: add initialisation/dispatch assembly …
syntactically May 26, 2026
5fb20da
[hyperlight_host] aarch64: initial KVM implementation
syntactically May 26, 2026
0a9b651
[tests] aarch64: remove amd64-isms from enabled tests
syntactically May 26, 2026
2a89542
fixup! [hyperlight_host] aarch64: add basic register handling for KVM
syntactically Jun 1, 2026
6f1a645
fixup! Justfile: add support for compiling for aarch64
syntactically Jun 1, 2026
2c003a3
fixup! [hyperlight_host] aarch64: initial KVM implementation
syntactically Jun 1, 2026
73c5dcd
fixup! [hyperlight_guest_bin] aarch64: support MMIO exits
syntactically Jun 1, 2026
a882d65
fixup! [tests] aarch64: remove amd64-isms from enabled tests
syntactically Jun 1, 2026
1b3f6ba
fixup! [hyperlight_host] aarch64: initial KVM implementation
syntactically Jun 1, 2026
d17ab99
fixup! [hyperlight_host] aarch64: add basic register handling for KVM
syntactically Jun 8, 2026
cacff49
fixup! [hyperlight_host] aarch64: add basic register handling for KVM
syntactically Jun 8, 2026
a37e5c5
fixup! aarch64: add virtual memory operations
syntactically Jun 8, 2026
5bdf928
fixup! [hyperlight_host] aarch64: add basic register handling for KVM
syntactically Jun 8, 2026
9c47c33
fixup! [hyperlight_host] aarch64: initial KVM implementation
syntactically Jun 8, 2026
3180c40
fixup! [hyperlight_host] aarch64: add basic register handling for KVM
syntactically Jun 8, 2026
dba66e5
fixup! Only pass `page_size` to `HyperlightVm` once
syntactically Jun 8, 2026
0480b9e
fixup! [hyperlight_libc] Support building picolibc for aarch64
syntactically Jun 8, 2026
d62b3ed
fixup! [hyperlight_host] aarch64: initial KVM implementation
syntactically Jun 8, 2026
18002a9
fixup! [hyperlight_host] aarch64: initial KVM implementation
syntactically Jun 8, 2026
a51f383
fixup! [hyperlight_host] aarch64: initial KVM implementation
syntactically Jun 8, 2026
7393282
fixup! aarch64: add virtual memory operations
syntactically Jun 8, 2026
4ae167b
fixup! [hyperlight_host] aarch64: add basic register handling for KVM
syntactically Jun 9, 2026
86b49cb
fixup! [hyperlight_host] aarch64: initial KVM implementation
syntactically Jun 9, 2026
0d1d8ab
fixup! [hyperlight_libc] Support building picolibc for aarch64
syntactically Jun 9, 2026
86d0cfc
fixup! aarch64: add virtual memory operations
syntactically Jun 9, 2026
b9d55bd
fixup! aarch64: add memory layout
syntactically Jun 9, 2026
27a718a
fixup! [hyperlight_guest_bin] aarch64: add basic exception handlers
syntactically Jun 9, 2026
c45f410
fixup! aarch64: add virtual memory operations
syntactically Jun 9, 2026
e70134a
fixup! fixup! Only pass `page_size` to `HyperlightVm` once
syntactically Jun 9, 2026
048b61d
fixup! HyperlightVm: allow hypervisor backends to implement reset_vcpu
syntactically Jun 9, 2026
6e9dfc9
fixup! [hyperlight_host] aarch64: initial KVM implementation
syntactically Jun 9, 2026
ae889b5
fixup! [hyperlight_host] aarch64: initial KVM implementation
syntactically Jun 9, 2026
79aab7e
fixup! [tests] aarch64: remove amd64-isms from enabled tests
syntactically Jun 9, 2026
a1300ce
aarch64: support running Clippy
syntactically Jun 9, 2026
e5a2264
fixup! aarch64: add memory layout
syntactically Jun 9, 2026
4e9faee
fixup! Extract UpdateParentTable from amd64 arch-specific to generic …
syntactically Jun 9, 2026
7d7962e
[ci] Set up GitHub workflows for aarch64 KVM
syntactically Jun 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 31 additions & 3 deletions .github/workflows/ValidatePullRequest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,13 @@ jobs:
strategy:
fail-fast: true
matrix:
arch: [X64, arm64]
config: [debug, release]
uses: ./.github/workflows/dep_build_guests.yml
secrets: inherit
with:
docs_only: ${{ needs.docs-pr.outputs.docs-only }}
arch: ${{ matrix.arch }}
config: ${{ matrix.config }}

# Code checks (fmt, clippy, MSRV) - runs in parallel with build-guests
Expand Down Expand Up @@ -92,14 +94,27 @@ jobs:
fail-fast: true
matrix:
hypervisor: ['hyperv-ws2025', mshv3, kvm]
cpu: [amd, intel]
cpu: [amd, intel, apple]
arch: [X64, arm64]
config: [debug, release]
exclude:
- cpu: apple
hypervisor: hyperv-ws2025
- cpu: apple
hypervisor: mshv3
- cpu: amd
arch: arm64
- cpu: intel
arch: arm64
- cpu: apple
arch: X64
uses: ./.github/workflows/dep_build_test.yml
secrets: inherit
with:
with:
docs_only: ${{ needs.docs-pr.outputs.docs-only }}
hypervisor: ${{ matrix.hypervisor }}
cpu: ${{ matrix.cpu }}
arch: ${{ matrix.arch }}
config: ${{ matrix.config }}

# Run examples - needs guest artifacts, runs in parallel with build-test
Expand All @@ -115,14 +130,27 @@ jobs:
fail-fast: true
matrix:
hypervisor: ['hyperv-ws2025', mshv3, kvm]
cpu: [amd, intel]
cpu: [amd, intel, apple]
arch: [X64, arm64]
config: [debug, release]
exclude:
- cpu: apple
hypervisor: hyperv-ws2025
- cpu: apple
hypervisor: mshv3
- cpu: amd
arch: arm64
- cpu: intel
arch: arm64
- cpu: apple
arch: X64
uses: ./.github/workflows/dep_run_examples.yml
secrets: inherit
with:
docs_only: ${{ needs.docs-pr.outputs.docs-only }}
hypervisor: ${{ matrix.hypervisor }}
cpu: ${{ matrix.cpu }}
arch: ${{ matrix.arch }}
config: ${{ matrix.config }}

fuzzing:
Expand Down
28 changes: 21 additions & 7 deletions .github/workflows/dep_build_guests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ on:
required: false
type: string
default: "false"
arch:
description: CPU architecture for the build (passed from caller matrix)
required: true
type: string
config:
description: Build configuration (debug or release)
required: true
Expand All @@ -29,7 +33,17 @@ jobs:
build-guests:
if: ${{ inputs.docs_only == 'false' }}
timeout-minutes: 15
runs-on: [self-hosted, Linux, X64, "1ES.Pool=hld-kvm-amd", "JobId=build-guests-${{ inputs.config }}-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}"]
runs-on: ${{ fromJson(
format('["self-hosted", "Linux", "{0}", "{1}" {2}]',
inputs.arch,
inputs.arch == 'X64' && '1ES.Pool=hld-kvm-amd' || 'ubuntu-24.04',
inputs.arch == 'X64' && format(', "JobId=build-guests-{0}-{1}-{2}-{3}"',
inputs.config,
github.run_id,
github.run_number,
github.run_attempt)
|| ''
)) }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

Expand All @@ -52,12 +66,12 @@ jobs:
with:
path: |
src/tests/rust_guests/target/sysroot
key: sysroot-linux-${{ inputs.config }}-${{ hashFiles('rust-toolchain.toml') }}
key: sysroot-linux-${{ inputs.arch }}-${{ inputs.config }}-${{ hashFiles('rust-toolchain.toml') }}

- name: Rust cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
with:
shared-key: "guests-${{ inputs.config }}"
shared-key: "guests-${{ inputs.arch }}-${{ inputs.config }}"
cache-on-failure: "true"
# Only save on main as caches are not shared across branches.
# https://docs.github.com/en/actions/reference/workflows-and-actions/dependency-caching#restrictions-for-accessing-a-cache
Expand All @@ -82,7 +96,7 @@ jobs:
- name: Upload Rust guests
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: rust-guests-${{ inputs.config }}
name: rust-guests-${{ inputs.arch }}-${{ inputs.config }}
path: |
src/tests/rust_guests/bin/${{ inputs.config }}/
retention-days: 1
Expand All @@ -91,13 +105,13 @@ jobs:
- name: Upload C guests
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: c-guests-${{ inputs.config }}
name: c-guests-${{ inputs.arch }}-${{ inputs.config }}
path: src/tests/c_guests/bin/${{ inputs.config }}/
retention-days: 1
if-no-files-found: error

- name: Upload interface.wasm
if: inputs.config == 'debug'
if: inputs.config == 'debug' && inputs.arch == 'X64'
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: interface-wasm
Expand All @@ -106,7 +120,7 @@ jobs:
if-no-files-found: error

- name: Upload twoworlds.wasm
if: inputs.config == 'debug'
if: inputs.config == 'debug' && inputs.arch == 'X64'
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: twoworlds-wasm
Expand Down
23 changes: 12 additions & 11 deletions .github/workflows/dep_build_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ on:
required: true
type: string
cpu:
description: CPU vendor for the build (passed from caller matrix)
required: true
type: string
arch:
description: CPU architecture for the build (passed from caller matrix)
required: true
type: string
Expand All @@ -39,14 +43,11 @@ jobs:
if: ${{ inputs.docs_only == 'false' }}
timeout-minutes: 45
runs-on: ${{ fromJson(
format('["self-hosted", "{0}", "X64", "1ES.Pool=hld-{1}-{2}", "JobId=build-and-test-{3}-{4}-{5}-{6}"]',
inputs.hypervisor == 'hyperv-ws2025' && 'Windows' || 'Linux',
inputs.hypervisor == 'hyperv-ws2025' && 'win2025' || inputs.hypervisor == 'mshv3' && 'azlinux3-mshv' || inputs.hypervisor,
inputs.cpu,
inputs.config,
github.run_id,
github.run_number,
github.run_attempt)) }}
format('["self-hosted", "{0}", "{1}", {2} {3}]',
inputs.hypervisor == 'hyperv-ws2025' && 'Windows' || 'Linux',
inputs.arch,
inputs.arch == 'X64' && format('1ES.pool=hld-{0}-{1}', inputs.hypervisor == 'hyperv-ws2025' && 'win2025' || inputs.hypervisor == 'mshv3' && 'azlinux3-mshv' || inputs.hypervisor, inputs.cpu) || inputs.hypervisor == 'kvm' && '"kvm", "ubuntu-24.04"' || '',
inputs.arch == 'X64' && format(', "JobId=build-and-test-{0}-{1}-{2}-{3}"', inputs.config, github.run_id, github.run_number, github.run_attempt) || 'self-hosted')) }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

Expand All @@ -64,7 +65,7 @@ jobs:
- name: Rust cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
with:
shared-key: "${{ runner.os }}-${{ inputs.hypervisor }}-${{ inputs.config }}"
shared-key: "${{ inputs.arch }}-${{ runner.os }}-${{ inputs.hypervisor }}-${{ inputs.config }}"
cache-on-failure: "true"
# Only save on main as caches are not shared across branches.
# https://docs.github.com/en/actions/reference/workflows-and-actions/dependency-caching#restrictions-for-accessing-a-cache
Expand All @@ -73,13 +74,13 @@ jobs:
- name: Download Rust guests
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: rust-guests-${{ inputs.config }}
name: rust-guests-${{ inputs.arch }}-${{ inputs.config }}
path: src/tests/rust_guests/bin/${{ inputs.config }}/

- name: Download C guests
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: c-guests-${{ inputs.config }}
name: c-guests-${{ inputs.arch }}-${{ inputs.config }}
path: src/tests/c_guests/bin/${{ inputs.config }}/

- name: Download interface.wasm
Expand Down
23 changes: 12 additions & 11 deletions .github/workflows/dep_run_examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ on:
required: true
type: string
cpu:
description: CPU vendor for the build (passed from caller matrix)
required: true
type: string
arch:
description: CPU architecture for the build (passed from caller matrix)
required: true
type: string
Expand All @@ -39,14 +43,11 @@ jobs:
if: ${{ inputs.docs_only == 'false' }}
timeout-minutes: 15
runs-on: ${{ fromJson(
format('["self-hosted", "{0}", "X64", "1ES.Pool=hld-{1}-{2}", "JobId=run-examples-{3}-{4}-{5}-{6}"]',
inputs.hypervisor == 'hyperv-ws2025' && 'Windows' || 'Linux',
inputs.hypervisor == 'hyperv-ws2025' && 'win2025' || inputs.hypervisor == 'mshv3' && 'azlinux3-mshv' || inputs.hypervisor,
inputs.cpu,
inputs.config,
github.run_id,
github.run_number,
github.run_attempt)) }}
format('["self-hosted", "{0}", "{1}", {2} {3}]',
inputs.hypervisor == 'hyperv-ws2025' && 'Windows' || 'Linux',
inputs.arch,
inputs.arch == 'X64' && format('1ES.pool=hld-{0}-{1}', inputs.hypervisor == 'hyperv-ws2025' && 'win2025' || inputs.hypervisor == 'mshv3' && 'azlinux3-mshv' || inputs.hypervisor, inputs.cpu) || inputs.hypervisor == 'kvm' && '"kvm", "ubuntu-24.04"' || '',
inputs.arch == 'X64' && format(', "JobId=run-examples-{0}-{1}-{2}-{3}"', inputs.config, github.run_id, github.run_number, github.run_attempt) || '')) }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

Expand All @@ -64,19 +65,19 @@ jobs:
- name: Rust cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
with:
shared-key: "${{ runner.os }}-${{ inputs.hypervisor }}-${{ inputs.config }}"
shared-key: "${{ inputs.arch }}-${{ runner.os }}-${{ inputs.hypervisor }}-${{ inputs.config }}"
save-if: "false"

- name: Download Rust guests
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: rust-guests-${{ inputs.config }}
name: rust-guests-${{ inputs.arch }}-${{ inputs.config }}
path: src/tests/rust_guests/bin/${{ inputs.config }}/

- name: Download C guests
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: c-guests-${{ inputs.config }}
name: c-guests-${{ inputs.arch }}-${{ inputs.config }}
path: src/tests/c_guests/bin/${{ inputs.config }}/

- name: Run Rust examples - windows
Expand Down
8 changes: 5 additions & 3 deletions Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,12 @@ export CROSS_CONTAINER_GID := if path_exists("/dev/kvm") == "true" { kvm-gid } e
root := justfile_directory()

default-target := "debug"
hyperlight-target-arch := env("HYPERLIGHT_TARGET", arch())
hyperlight-target := if hyperlight-target-arch == "x86_64" { "x86_64-hyperlight-none" } else if hyperlight-target-arch == "aarch64" { "aarch64-hyperlight-none" } else { error("Unsupported architecture: " + arch()) }
# All three guest crates share one workspace under src/tests/rust_guests,
# so they share one target dir and hyperlight-libc / hyperlight-guest-bin
# get compiled once per profile instead of once per crate.
rust_guests_target := "src/tests/rust_guests/target/x86_64-hyperlight-none"
rust_guests_target := "src/tests/rust_guests/target/" + hyperlight-target
simpleguest_source := rust_guests_target
dummyguest_source := rust_guests_target
witguest_source := rust_guests_target
Expand Down Expand Up @@ -314,7 +316,7 @@ fmt-apply: (ensure-nightly-fmt)
cargo +{{nightly-toolchain}} fmt --manifest-path src/hyperlight_guest_capi/Cargo.toml

clippy target=default-target: (witguest-wit)
{{ cargo-cmd }} clippy --all-targets --all-features --profile={{ if target == "debug" { "dev" } else { target } }} {{ target-triple-flag }} -- -D warnings
{{ cargo-cmd }} clippy --all-targets {{ if hyperlight-target-arch == "x86_64" { "--all-features" } else { "" } }} --profile={{ if target == "debug" { "dev" } else { target } }} {{ target-triple-flag }} -- -D warnings

# for use on a linux host-machine when cross-compiling to windows. Uses the windows-gnu which should be sufficient for most purposes
clippyw target=default-target: (witguest-wit)
Expand All @@ -339,7 +341,7 @@ clippy-exhaustive target=default-target: (witguest-wit)
./hack/clippy-package-features.sh hyperlight-testing {{ target }} {{ target-triple }}
./hack/clippy-package-features.sh hyperlight-component-macro {{ target }} {{ target-triple }}
./hack/clippy-package-features.sh hyperlight-component-util {{ target }} {{ target-triple }}
./hack/clippy-package-features.sh hyperlight-guest-tracing {{ target }}
{{ if hyperlight-target-arch == "x86_64" { "./hack/clippy-package-features.sh hyperlight-guest-tracing " + target } else { "" } }}
just clippy-guests {{ target }}

# Test a specific package with all feature combinations
Expand Down
5 changes: 3 additions & 2 deletions c.just
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
mkdir := if os() == "windows" { "mkdir -f -p" } else { "mkdir -p"}

# Elf options
hyperlight-target-c := if hyperlight-target-arch == "x86_64" { "x86_64-unknown-linux-none" } else if hyperlight-target-arch == "aarch64" { "aarch64-unknown-linux-none" } else { error("Unsupported architecture: " + hyperlight-target-arch) }
# We don't support stack protectors at the moment, but Arch Linux clang auto-enables them for -linux platforms, so explicitly disable them.
c-compile-options-elf := '-nostdlibinc -H --target=x86_64-unknown-linux-none -fno-stack-protector -fstack-clash-protection -mstack-probe-size=4096 -fPIC'
c-compile-options-elf := "-nostdlibinc -H --target=" + hyperlight-target-c + " -fno-stack-protector -fstack-clash-protection -mstack-probe-size=4096 -fPIC"
c-include-flags-elf := "-I " + root / "src/hyperlight_guest_capi/include/" + " -I " + root / "src/hyperlight_libc/third_party/picolibc/libc/include/" + " -I " + root / "src/hyperlight_libc/third_party/picolibc/libc/stdio/" + " -I " + root / "src/hyperlight_libc/include/"
c-linker-options-elf := '--entry "entrypoint" --nostdlib -pie --no-dynamic-linker'
c-flags-debug-elf := '-O0'
Expand All @@ -19,7 +20,7 @@ compile-c-guest target=default-target:

link-c-guest target=default-target:
# elf
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-hyperlight-none/{{target}}"
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/{{hyperlight-target}}/{{target}}"

move-c-guests target=default-target:
# elf
Expand Down
6 changes: 6 additions & 0 deletions docs/paging-development-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,3 +172,9 @@ below the exception stack within the scratch region.

Hyperlight unconditionally uses 48-bit virtual addresses (4-level
paging) and enables PAE. The guest is always entered in long mode.

## aarch64

Hyperlight unconditionally uses 48-bit virtual addresses. Hyperlight
presently only uses addresses in the lower (ttbr0) half of the address range.

26 changes: 14 additions & 12 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
toolchainVersionAttrs = args;
};
})) // {
targetPlatforms = [ "x86_64-linux" ];
targetPlatforms = [ "aarch64-linux" "x86_64-linux" ];
badTargetPlatforms = [ ];
};
overrideRustPkg = pkg: self.lib.makeOverridable (origArgs:
Expand All @@ -68,21 +68,21 @@
args = [ "-c" "declare > $out" ];
});
in {
shells.default = gcrootForShell devShells.x86_64-linux.default;
shells.x86_64-linux.default = gcrootForShell devShells.x86_64-linux.default;
shells.aarch64-linux.default = gcrootForShell devShells.aarch64-linux.default;
};
devShells.x86_64-linux.default =
let pkgs = import nixpkgs {
system = "x86_64-linux";
overlays = [ (import (nixpkgs-mozilla + "/rust-overlay.nix")) overlays.fix-rust ];
};
in with pkgs; let
devShells = nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed (system: {
default = let pkgs = import nixpkgs {
inherit system;
overlays = [ (import (nixpkgs-mozilla + "/rust-overlay.nix")) overlays.fix-rust ];
}; in with pkgs; let
customisedRustChannelOf = args:
lib.flip builtins.mapAttrs (rustChannelOf args) (_: pkg: pkg.override {
targets = [
"x86_64-unknown-linux-gnu"
"x86_64-pc-windows-msvc" "x86_64-unknown-none"
"wasm32-wasip1" "wasm32-wasip2" "wasm32-unknown-unknown"
"i686-unknown-linux-gnu"
"i686-unknown-linux-gnu" "aarch64-unknown-none"
];
extensions = [ "rust-src" ] ++ (if args.channel == "nightly" then [ "miri-preview" ] else []);
});
Expand Down Expand Up @@ -225,10 +225,11 @@
src = fetchFromGitHub {
owner = "hyperlight-dev";
repo = "cargo-hyperlight";
tag = "v${version}";
hash = "sha256-xq4/c69N0wG/I8WOYVloo0J0JqoSIKiWWtECdSKrsxo=";
rev = "28ac7b57e8e7b83f80bd601f1fab334aa3ae6d4a";
hash = "sha256-a/mvPEDJycrCbmd826SmFdasE8BFtMkCsefCNR5JnkM=";
};
cargoHash = "sha256-muiMVrK1TydQiMitihfo7xYidqUIIQ+Hw3BIeo5rLFw=";
cargoHash = "sha256-wLapaao8qcB/toltV/xjQ7SXXcfh2J19nw6jWljmb2s=";
doCheck = false;
};
in (buildRustPackageClang (mkDerivationAttrs: {
pname = "hyperlight";
Expand Down Expand Up @@ -278,5 +279,6 @@
})).overrideAttrs(oA: {
hardeningDisable = [ "all" ];
});
});
};
}
Loading
Loading