From 57b83789c7bb8d553024681f11180055dd5b002b Mon Sep 17 00:00:00 2001 From: Marco Cavenati Date: Fri, 26 Sep 2025 17:56:25 +0200 Subject: [PATCH 1/2] Add nyx feature to gate nyx commands --- crates/libafl_qemu/Cargo.toml | 2 ++ crates/libafl_qemu/src/command/mod.rs | 2 +- crates/libafl_qemu/src/command/parser/mod.rs | 2 +- crates/libafl_qemu/src/emu/drivers/mod.rs | 4 ++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/crates/libafl_qemu/Cargo.toml b/crates/libafl_qemu/Cargo.toml index 6802db3246..ec78665193 100644 --- a/crates/libafl_qemu/Cargo.toml +++ b/crates/libafl_qemu/Cargo.toml @@ -92,6 +92,8 @@ slirp = [ intel_pt = ["systemmode", "x86_64", "dep:libafl_intelpt"] intel_pt_export_raw = ["intel_pt", "libafl_intelpt/export_raw"] +nyx = ["systemmode", "x86_64"] + # Requires the binary's build.rs to call `build_libafl_qemu` shared = ["libafl_qemu_sys/shared"] diff --git a/crates/libafl_qemu/src/command/mod.rs b/crates/libafl_qemu/src/command/mod.rs index 66d00f8f54..f53a82ebae 100644 --- a/crates/libafl_qemu/src/command/mod.rs +++ b/crates/libafl_qemu/src/command/mod.rs @@ -29,7 +29,7 @@ use crate::{ sync_exit::ExitArgs, }; -#[cfg(all(cpu_target = "x86_64", feature = "systemmode"))] +#[cfg(feature = "nyx")] pub mod nyx; pub mod parser; diff --git a/crates/libafl_qemu/src/command/parser/mod.rs b/crates/libafl_qemu/src/command/parser/mod.rs index 13657491ac..557c52e759 100644 --- a/crates/libafl_qemu/src/command/parser/mod.rs +++ b/crates/libafl_qemu/src/command/parser/mod.rs @@ -16,7 +16,7 @@ use crate::{ sync_exit::ExitArgs, }; -#[cfg(all(cpu_target = "x86_64", feature = "systemmode"))] +#[cfg(feature = "nyx")] pub mod nyx; pub static EMU_EXIT_KIND_MAP: OnceLock>> = OnceLock::new(); diff --git a/crates/libafl_qemu/src/emu/drivers/mod.rs b/crates/libafl_qemu/src/emu/drivers/mod.rs index d2eb5de4fb..f133664d5f 100644 --- a/crates/libafl_qemu/src/emu/drivers/mod.rs +++ b/crates/libafl_qemu/src/emu/drivers/mod.rs @@ -14,9 +14,9 @@ use crate::{ modules::EmulatorModuleTuple, }; -#[cfg(all(cpu_target = "x86_64", feature = "systemmode"))] +#[cfg(feature = "nyx")] pub mod nyx; -#[cfg(all(cpu_target = "x86_64", feature = "systemmode"))] +#[cfg(feature = "nyx")] pub use nyx::{NyxEmulatorDriver, NyxEmulatorDriverBuilder}; #[derive(Debug, Clone)] From 14ef2a517e78c930ebcf4b8c6e5878b50c7b9449 Mon Sep 17 00:00:00 2001 From: Marco Cavenati Date: Tue, 30 Sep 2025 13:59:01 +0200 Subject: [PATCH 2/2] disable nyx in CI --- utils/ci_splitter/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/ci_splitter/src/main.rs b/utils/ci_splitter/src/main.rs index fe71a4f81d..9cafb45f5e 100644 --- a/utils/ci_splitter/src/main.rs +++ b/utils/ci_splitter/src/main.rs @@ -41,7 +41,7 @@ fn main() -> Result<(), Box> { --exclude-features=prelude,python,sancov_pcguard_edges,arm,aarch64,i386,be,systemmode,whole_archive \ --no-dev-deps --exclude libafl_libfuzzer --exclude libafl_qemu --exclude libafl_qemu_sys --exclude libafl_asan_libc --print-command-list; ", "DOCS_RS=1 cargo hack check -p libafl_qemu -p libafl_qemu_sys --each-feature --clean-per-run \ - --exclude-features=prelude,python,sancov_pcguard_edges,arm,aarch64,i386,be,systemmode,whole_archive,slirp,intel_pt,intel_pt_export_raw \ + --exclude-features=prelude,python,sancov_pcguard_edges,arm,aarch64,i386,be,systemmode,whole_archive,slirp,intel_pt,intel_pt_export_raw,nyx \ --no-dev-deps --features usermode --print-command-list" );