Allow compiling 32bit (#1666)
* Allow compiling for 32bit * Fmt * Clean up minibsod for 32bit * fmt
This commit is contained in:
parent
8c62d339a2
commit
7acdeacae8
@ -467,6 +467,23 @@ fn write_crash<W: Write>(
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(all(any(target_os = "linux", target_os = "android"), target_arch = "x86"))]
|
||||
fn write_crash<W: Write>(
|
||||
writer: &mut BufWriter<W>,
|
||||
signal: Signal,
|
||||
ucontext: &ucontext_t,
|
||||
) -> Result<(), std::io::Error> {
|
||||
writeln!(
|
||||
writer,
|
||||
"Received signal {} at {:#08x}, fault address: {:#08x}",
|
||||
signal,
|
||||
ucontext.uc_mcontext.gregs[libc::REG_EIP as usize],
|
||||
ucontext.uc_mcontext.gregs[libc::REG_ERR as usize]
|
||||
)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(all(
|
||||
any(target_os = "linux", target_os = "android"),
|
||||
target_arch = "aarch64"
|
||||
@ -896,8 +913,12 @@ pub fn generate_minibsod<W: Write>(
|
||||
writeln!(writer, "{:━^100}", " CRASH ")?;
|
||||
if let Some(uctx) = ucontext {
|
||||
write_crash(writer, signal, uctx)?;
|
||||
|
||||
#[cfg(target_pointer_width = "64")]
|
||||
{
|
||||
writeln!(writer, "{:━^100}", " REGISTERS ")?;
|
||||
dump_registers(writer, uctx)?;
|
||||
}
|
||||
} else {
|
||||
writeln!(writer, "Received signal {signal}")?;
|
||||
}
|
||||
|
@ -159,6 +159,7 @@ fn build_pass(
|
||||
let r = if cfg!(unix) {
|
||||
let r = Command::new(bindir_path.join("clang++"))
|
||||
.arg("-v")
|
||||
.arg(format!("--target={}", env::var("HOST").unwrap()))
|
||||
.args(cxxflags)
|
||||
.arg(src_dir.join(src_file))
|
||||
.args(additionals)
|
||||
@ -171,6 +172,7 @@ fn build_pass(
|
||||
} else if cfg!(windows) {
|
||||
let r = Command::new(bindir_path.join("clang-cl.exe"))
|
||||
.arg("-v")
|
||||
.arg(format!("--target={}", env::var("HOST").unwrap()))
|
||||
.args(cxxflags)
|
||||
.arg(src_dir.join(src_file))
|
||||
.args(additionals)
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include <stdint.h>
|
||||
|
||||
#ifndef _WIN32
|
||||
#if !defined(_WIN32) && defined(__SIZEOF_INT128__)
|
||||
typedef unsigned __int128 uint128_t;
|
||||
typedef uint128_t u128;
|
||||
#endif
|
||||
@ -56,7 +56,7 @@ void __cmplog_ins_hook8(uint64_t arg1, uint64_t arg2) {
|
||||
(void)arg2;
|
||||
}
|
||||
|
||||
#ifndef _WIN32
|
||||
#if !defined(_WIN32) && defined(__SIZEOF_INT128__)
|
||||
void __cmplog_ins_hook16_extended(uint128_t arg1, uint128_t arg2,
|
||||
uint8_t attr) {
|
||||
(void)attr;
|
||||
|
@ -137,7 +137,7 @@ fn main() {
|
||||
println!("cargo:rerun-if-changed=src/common.c");
|
||||
|
||||
#[cfg(feature = "sanitizer_interfaces")]
|
||||
{
|
||||
if env::var("CARGO_CFG_TARGET_POINTER_WIDTH").unwrap() == "64" {
|
||||
println!("cargo:rerun-if-changed=src/sanitizer_interfaces.h");
|
||||
|
||||
let build = bindgen::builder()
|
||||
@ -151,6 +151,10 @@ fn main() {
|
||||
build
|
||||
.write_to_file(Path::new(&out_dir).join("sanitizer_interfaces.rs"))
|
||||
.expect("Couldn't write the sanitizer headers!");
|
||||
} else {
|
||||
let mut file = File::create(Path::new(&out_dir).join("sanitizer_interfaces.rs"))
|
||||
.expect("Could not create file");
|
||||
write!(file, "").unwrap();
|
||||
}
|
||||
|
||||
let mut common = cc::Build::new();
|
||||
|
@ -252,7 +252,7 @@ void __cmplog_ins_hook8(uint64_t arg1, uint64_t arg2) {
|
||||
__libafl_targets_cmplog_instructions(k, 8, arg1, arg2);
|
||||
}
|
||||
|
||||
#ifndef _WIN32
|
||||
#if !defined(_WIN32) && defined(__SIZEOF_INT128__)
|
||||
void __cmplog_ins_hook16_extended(uint128_t arg1, uint128_t arg2,
|
||||
uint8_t attr) {
|
||||
uintptr_t k = RETADDR;
|
||||
|
@ -6,7 +6,7 @@
|
||||
#define true 1
|
||||
#define false 0
|
||||
|
||||
#ifndef _WIN32
|
||||
#if !defined(_WIN32) && defined(__SIZEOF_INT128__)
|
||||
typedef unsigned __int128 uint128_t;
|
||||
typedef uint128_t u128;
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user