Skip to content

Commit ec734c7

Browse files
Move to nostd printf and musl crates (#3188)
* Adopt nostd-printf * Adopt nostd-musl
1 parent 0ddc5f1 commit ec734c7

File tree

10 files changed

+53
-1174
lines changed

10 files changed

+53
-1174
lines changed

libafl_qemu/librasan/Justfile

+5-5
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,11 @@ build_everything_dev: \
8282
build_ppc_dev \
8383

8484
build_everything_release: \
85-
build_arm_dev \
86-
build_aarch64_dev \
87-
build_x86_64_dev \
88-
build_i386_dev \
89-
build_ppc_dev \
85+
build_arm_release \
86+
build_aarch64_release \
87+
build_x86_64_release \
88+
build_i386_release \
89+
build_ppc_release \
9090

9191
build_everything: build_everything_dev build_everything_release
9292

libafl_qemu/librasan/asan/Cargo.toml

+5
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,11 @@ log = { version = "0.4.22", default-features = false, features = [
5959
"release_max_level_info",
6060
] }
6161
libc = { version = "0.2.169", default-features = false, optional = true }
62+
nostd-musl = { version = "0.1.5", default-features = false, features = [
63+
"optimized-assembly",
64+
] }
65+
nostd-printf = { version = "0.1.4", default-features = false }
66+
6267
readonly = { version = "0.2.12", default-features = false }
6368
rustix = { version = "1.0.0", default-features = false, features = [
6469
"fs",

libafl_qemu/librasan/asan/build.rs

+6-12
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
fn main() {
22
println!("cargo:rerun-if-changed=cc/include/hooks.h");
33
println!("cargo:rerun-if-changed=cc/include/trace.h");
4-
println!("cargo:rerun-if-changed=cc/include/printf.h");
54
println!("cargo:rerun-if-changed=cc/src/asprintf.c");
65
println!("cargo:rerun-if-changed=cc/src/log.c");
7-
println!("cargo:rerun-if-changed=cc/src/printf.c");
86
println!("cargo:rerun-if-changed=cc/src/vasprintf.c");
97

108
cc::Build::new()
119
.define("_GNU_SOURCE", None)
1210
.opt_level(3)
1311
.flag("-Werror")
1412
.flag("-fno-stack-protector")
13+
.flag("-U_FORTIFY_SOURCE")
14+
.flag("-D_FORTIFY_SOURCE=0")
1515
.flag("-ffunction-sections")
1616
.include("cc/include/")
1717
.file("cc/src/asprintf.c")
@@ -22,6 +22,8 @@ fn main() {
2222
.opt_level(3)
2323
.flag("-Werror")
2424
.flag("-fno-stack-protector")
25+
.flag("-U_FORTIFY_SOURCE")
26+
.flag("-D_FORTIFY_SOURCE=0")
2527
.flag("-ffunction-sections")
2628
.include("cc/include/")
2729
.file("cc/src/log.c")
@@ -32,16 +34,8 @@ fn main() {
3234
.opt_level(3)
3335
.flag("-Werror")
3436
.flag("-fno-stack-protector")
35-
.flag("-ffunction-sections")
36-
.include("cc/include/")
37-
.file("cc/src/printf.c")
38-
.compile("printf");
39-
40-
cc::Build::new()
41-
.define("_GNU_SOURCE", None)
42-
.opt_level(3)
43-
.flag("-Werror")
44-
.flag("-fno-stack-protector")
37+
.flag("-U_FORTIFY_SOURCE")
38+
.flag("-D_FORTIFY_SOURCE=0")
4539
.flag("-ffunction-sections")
4640
.include("cc/include/")
4741
.file("cc/src/vasprintf.c")

libafl_qemu/librasan/asan/cc/include/printf.h

-116
This file was deleted.

libafl_qemu/librasan/asan/cc/src/asprintf.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#include <limits.h>
22
#include <stdarg.h>
33
#include <stddef.h>
4+
#include <stdio.h>
45
#include "hooks.h"
5-
#include "printf.h"
66
#include "trace.h"
77

88
int asprintf(char **restrict strp, const char *restrict fmt, ...) {
@@ -13,7 +13,7 @@ int asprintf(char **restrict strp, const char *restrict fmt, ...) {
1313

1414
va_list va;
1515
va_start(va, fmt);
16-
int len = vsnprintf_(NULL, 0, fmt, va);
16+
int len = vsnprintf(NULL, 0, fmt, va);
1717
va_end(va);
1818

1919
if (len < 0) { return -1; }
@@ -22,5 +22,5 @@ int asprintf(char **restrict strp, const char *restrict fmt, ...) {
2222
if (buffer == NULL) { return -1; }
2323

2424
*strp = buffer;
25-
return vsnprintf_(buffer, len, fmt, va);
25+
return vsnprintf(buffer, len, fmt, va);
2626
}
+2-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#include <limits.h>
22
#include <stdarg.h>
3-
#include "printf.h"
3+
#include <stdio.h>
44

55
static char log_buffer[PATH_MAX] = {0};
66

@@ -9,13 +9,7 @@ extern void log_trace(char *msg);
99
void trace(const char *fmt, ...) {
1010
va_list va;
1111
va_start(va, fmt);
12-
int len = vsnprintf_(log_buffer, sizeof(log_buffer), fmt, va);
12+
int len = vsnprintf(log_buffer, sizeof(log_buffer), fmt, va);
1313
if (len > 0) { log_trace(log_buffer); }
1414
va_end(va);
1515
}
16-
17-
#ifdef __powerpc__
18-
void _putchar(char c) {
19-
(void)c;
20-
}
21-
#endif

0 commit comments

Comments
 (0)