diff --git a/libafl_qemu/libafl_qemu_build/src/build.rs b/libafl_qemu/libafl_qemu_build/src/build.rs index de492a2f5a..ba5ec08b09 100644 --- a/libafl_qemu/libafl_qemu_build/src/build.rs +++ b/libafl_qemu/libafl_qemu_build/src/build.rs @@ -146,169 +146,150 @@ pub fn build( .arg("distclean") .status(), );*/ - if is_usermode && !custom_qemu_no_configure { - let mut cmd = Command::new("./configure"); - cmd.current_dir(&qemu_path) - //.arg("--as-static-lib") - .env("__LIBAFL_QEMU_BUILD_OUT", build_dir.join("linkinfo.json")) - .env("__LIBAFL_QEMU_BUILD_CC", cc_compiler.path()) - .env("__LIBAFL_QEMU_BUILD_CXX", cpp_compiler.path()) - .arg(&format!( - "--cc={}", - qemu_path.join("linker_interceptor.py").display() - )) - .arg(&format!( - "--cxx={}", - qemu_path.join("linker_interceptor++.py").display() - )) - .arg("--as-shared-lib") - .arg(&format!("--target-list={cpu_target}-{target_suffix}")) - .args([ - "--disable-bsd-user", - "--disable-fdt", - "--disable-system", - "--disable-capstone", - ]); - if cfg!(feature = "debug_assertions") { - cmd.arg("--enable-debug"); - } - cmd.status().expect("Configure failed"); - } else if !custom_qemu_no_configure { - let mut cmd = Command::new("./configure"); - cmd.current_dir(&qemu_path) - //.arg("--as-static-lib") - .env("__LIBAFL_QEMU_BUILD_OUT", build_dir.join("linkinfo.json")) - .env("__LIBAFL_QEMU_BUILD_CC", cc_compiler.path()) - .env("__LIBAFL_QEMU_BUILD_CXX", cpp_compiler.path()) - .arg(&format!( - "--cc={}", - qemu_path.join("linker_interceptor.py").display() - )) - .arg(&format!( - "--cxx={}", - qemu_path.join("linker_interceptor++.py").display() - )) - .arg("--as-shared-lib") - .arg(&format!("--target-list={cpu_target}-{target_suffix}")) - .arg(if cfg!(feature = "slirp") { - "--enable-slirp" - } else { - "--disable-slirp" - }) - .arg("--enable-fdt=internal") - .arg("--audio-drv-list=") - .arg("--disable-af-xdp") - .arg("--disable-alsa") - .arg("--disable-attr") - .arg("--disable-auth-pam") - .arg("--disable-dbus-display") - .arg("--disable-bochs") - .arg("--disable-bpf") - .arg("--disable-brlapi") - .arg("--disable-bsd-user") - .arg("--disable-bzip2") - .arg("--disable-capstone") - .arg("--disable-cap-ng") - .arg("--disable-canokey") - .arg("--disable-cloop") - .arg("--disable-cocoa") - .arg("--disable-coreaudio") - .arg("--disable-curl") - .arg("--disable-curses") - .arg("--disable-dmg") - .arg("--disable-docs") - .arg("--disable-dsound") - .arg("--disable-fuse") - .arg("--disable-fuse-lseek") - .arg("--disable-gcrypt") - .arg("--disable-gettext") - .arg("--disable-gio") - .arg("--disable-glusterfs") - .arg("--disable-gnutls") - .arg("--disable-gtk") - .arg("--disable-guest-agent") - .arg("--disable-guest-agent-msi") - .arg("--disable-hvf") - .arg("--disable-iconv") - .arg("--disable-jack") - .arg("--disable-keyring") - .arg("--disable-kvm") - .arg("--disable-libdaxctl") - .arg("--disable-libiscsi") - .arg("--disable-libnfs") - .arg("--disable-libpmem") - .arg("--disable-libssh") - .arg("--disable-libudev") - .arg("--disable-libusb") - .arg("--disable-linux-aio") - .arg("--disable-linux-io-uring") - .arg("--disable-linux-user") - .arg("--disable-live-block-migration") - .arg("--disable-lzfse") - .arg("--disable-lzo") - .arg("--disable-l2tpv3") - .arg("--disable-malloc-trim") - .arg("--disable-mpath") - .arg("--disable-multiprocess") - .arg("--disable-netmap") - .arg("--disable-nettle") - .arg("--disable-numa") - .arg("--disable-nvmm") - .arg("--disable-opengl") - .arg("--disable-oss") - .arg("--disable-pa") - .arg("--disable-parallels") - .arg("--disable-png") - .arg("--disable-pvrdma") - .arg("--disable-qcow1") - .arg("--disable-qed") - .arg("--disable-qga-vss") - .arg("--disable-rbd") - .arg("--disable-rdma") - .arg("--disable-replication") - .arg("--disable-sdl") - .arg("--disable-sdl-image") - .arg("--disable-seccomp") - .arg("--disable-selinux") - .arg("--disable-slirp-smbd") - .arg("--disable-smartcard") - .arg("--disable-snappy") - .arg("--disable-sndio") - .arg("--disable-sparse") - .arg("--disable-spice") - .arg("--disable-spice-protocol") - .arg("--disable-tools") - .arg("--disable-tpm") - .arg("--disable-usb-redir") - .arg("--disable-user") - .arg("--disable-u2f") - .arg("--disable-vde") - .arg("--disable-vdi") - .arg("--disable-vduse-blk-export") - .arg("--disable-vhost-crypto") - .arg("--disable-vhost-kernel") - .arg("--disable-vhost-net") - .arg("--disable-vhost-user-blk-server") - .arg("--disable-vhost-vdpa") - .arg("--disable-virglrenderer") - .arg("--disable-virtfs") - .arg("--disable-vmnet") - .arg("--disable-vnc") - .arg("--disable-vnc-jpeg") - .arg("--disable-vnc-sasl") - .arg("--disable-vte") - .arg("--disable-vvfat") - .arg("--disable-whpx") - .arg("--disable-xen") - .arg("--disable-xen-pci-passthrough") - .arg("--disable-xkbcommon") - .arg("--disable-zstd") - .arg("--disable-tests"); - if cfg!(feature = "debug_assertions") { - cmd.arg("--enable-debug"); - } - cmd.status().expect("Configure failed"); + let mut cmd = Command::new("./configure"); + cmd.current_dir(&qemu_path) + //.arg("--as-static-lib") + .env("__LIBAFL_QEMU_BUILD_OUT", build_dir.join("linkinfo.json")) + .env("__LIBAFL_QEMU_BUILD_CC", cc_compiler.path()) + .env("__LIBAFL_QEMU_BUILD_CXX", cpp_compiler.path()) + .arg(&format!( + "--cc={}", + qemu_path.join("linker_interceptor.py").display() + )) + .arg(&format!( + "--cxx={}", + qemu_path.join("linker_interceptor++.py").display() + )) + .arg("--as-shared-lib") + .arg(&format!("--target-list={cpu_target}-{target_suffix}")); + if cfg!(feature = "debug_assertions") { + cmd.arg("--enable-debug"); } + if is_usermode && !custom_qemu_no_configure { + cmd.args([ + "--disable-bsd-user", + "--disable-fdt", + "--disable-system", + "--disable-capstone", + ]); + } else if !custom_qemu_no_configure { + cmd.arg(if cfg!(feature = "slirp") { + "--enable-slirp" + } else { + "--disable-slirp" + }) + .arg("--enable-fdt=internal") + .arg("--audio-drv-list=") + .arg("--disable-af-xdp") + .arg("--disable-alsa") + .arg("--disable-attr") + .arg("--disable-auth-pam") + .arg("--disable-dbus-display") + .arg("--disable-bochs") + .arg("--disable-bpf") + .arg("--disable-brlapi") + .arg("--disable-bsd-user") + .arg("--disable-bzip2") + .arg("--disable-capstone") + .arg("--disable-cap-ng") + .arg("--disable-canokey") + .arg("--disable-cloop") + .arg("--disable-cocoa") + .arg("--disable-coreaudio") + .arg("--disable-curl") + .arg("--disable-curses") + .arg("--disable-dmg") + .arg("--disable-docs") + .arg("--disable-dsound") + .arg("--disable-fuse") + .arg("--disable-fuse-lseek") + .arg("--disable-gcrypt") + .arg("--disable-gettext") + .arg("--disable-gio") + .arg("--disable-glusterfs") + .arg("--disable-gnutls") + .arg("--disable-gtk") + .arg("--disable-guest-agent") + .arg("--disable-guest-agent-msi") + .arg("--disable-hvf") + .arg("--disable-iconv") + .arg("--disable-jack") + .arg("--disable-keyring") + .arg("--disable-kvm") + .arg("--disable-libdaxctl") + .arg("--disable-libiscsi") + .arg("--disable-libnfs") + .arg("--disable-libpmem") + .arg("--disable-libssh") + .arg("--disable-libudev") + .arg("--disable-libusb") + .arg("--disable-linux-aio") + .arg("--disable-linux-io-uring") + .arg("--disable-linux-user") + .arg("--disable-live-block-migration") + .arg("--disable-lzfse") + .arg("--disable-lzo") + .arg("--disable-l2tpv3") + .arg("--disable-malloc-trim") + .arg("--disable-mpath") + .arg("--disable-multiprocess") + .arg("--disable-netmap") + .arg("--disable-nettle") + .arg("--disable-numa") + .arg("--disable-nvmm") + .arg("--disable-opengl") + .arg("--disable-oss") + .arg("--disable-pa") + .arg("--disable-parallels") + .arg("--disable-png") + .arg("--disable-pvrdma") + .arg("--disable-qcow1") + .arg("--disable-qed") + .arg("--disable-qga-vss") + .arg("--disable-rbd") + .arg("--disable-rdma") + .arg("--disable-replication") + .arg("--disable-sdl") + .arg("--disable-sdl-image") + .arg("--disable-seccomp") + .arg("--disable-selinux") + .arg("--disable-slirp-smbd") + .arg("--disable-smartcard") + .arg("--disable-snappy") + .arg("--disable-sndio") + .arg("--disable-sparse") + .arg("--disable-spice") + .arg("--disable-spice-protocol") + .arg("--disable-tools") + .arg("--disable-tpm") + .arg("--disable-usb-redir") + .arg("--disable-user") + .arg("--disable-u2f") + .arg("--disable-vde") + .arg("--disable-vdi") + .arg("--disable-vduse-blk-export") + .arg("--disable-vhost-crypto") + .arg("--disable-vhost-kernel") + .arg("--disable-vhost-net") + .arg("--disable-vhost-user-blk-server") + .arg("--disable-vhost-vdpa") + .arg("--disable-virglrenderer") + .arg("--disable-virtfs") + .arg("--disable-vmnet") + .arg("--disable-vnc") + .arg("--disable-vnc-jpeg") + .arg("--disable-vnc-sasl") + .arg("--disable-vte") + .arg("--disable-vvfat") + .arg("--disable-whpx") + .arg("--disable-xen") + .arg("--disable-xen-pci-passthrough") + .arg("--disable-xkbcommon") + .arg("--disable-zstd") + .arg("--disable-tests"); + } + + cmd.status().expect("Configure failed"); if let Some(j) = jobs { Command::new("make") .current_dir(&build_dir)