Refactor(build.rs): extract common code between branches (#1950)
This commit is contained in:
parent
44a37da680
commit
fbd0d497d4
@ -146,169 +146,150 @@ pub fn build(
|
|||||||
.arg("distclean")
|
.arg("distclean")
|
||||||
.status(),
|
.status(),
|
||||||
);*/
|
);*/
|
||||||
if is_usermode && !custom_qemu_no_configure {
|
let mut cmd = Command::new("./configure");
|
||||||
let mut cmd = Command::new("./configure");
|
cmd.current_dir(&qemu_path)
|
||||||
cmd.current_dir(&qemu_path)
|
//.arg("--as-static-lib")
|
||||||
//.arg("--as-static-lib")
|
.env("__LIBAFL_QEMU_BUILD_OUT", build_dir.join("linkinfo.json"))
|
||||||
.env("__LIBAFL_QEMU_BUILD_OUT", build_dir.join("linkinfo.json"))
|
.env("__LIBAFL_QEMU_BUILD_CC", cc_compiler.path())
|
||||||
.env("__LIBAFL_QEMU_BUILD_CC", cc_compiler.path())
|
.env("__LIBAFL_QEMU_BUILD_CXX", cpp_compiler.path())
|
||||||
.env("__LIBAFL_QEMU_BUILD_CXX", cpp_compiler.path())
|
.arg(&format!(
|
||||||
.arg(&format!(
|
"--cc={}",
|
||||||
"--cc={}",
|
qemu_path.join("linker_interceptor.py").display()
|
||||||
qemu_path.join("linker_interceptor.py").display()
|
))
|
||||||
))
|
.arg(&format!(
|
||||||
.arg(&format!(
|
"--cxx={}",
|
||||||
"--cxx={}",
|
qemu_path.join("linker_interceptor++.py").display()
|
||||||
qemu_path.join("linker_interceptor++.py").display()
|
))
|
||||||
))
|
.arg("--as-shared-lib")
|
||||||
.arg("--as-shared-lib")
|
.arg(&format!("--target-list={cpu_target}-{target_suffix}"));
|
||||||
.arg(&format!("--target-list={cpu_target}-{target_suffix}"))
|
if cfg!(feature = "debug_assertions") {
|
||||||
.args([
|
cmd.arg("--enable-debug");
|
||||||
"--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");
|
|
||||||
}
|
}
|
||||||
|
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 {
|
if let Some(j) = jobs {
|
||||||
Command::new("make")
|
Command::new("make")
|
||||||
.current_dir(&build_dir)
|
.current_dir(&build_dir)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user