|
@ -0,0 +1,76 @@ |
|
|
|
|
|
From 2759b7c8dda77641fe271102a26ad7a02419ad62 Mon Sep 17 00:00:00 2001 |
|
|
|
|
|
From: Rosen Penev <rosenp@gmail.com> |
|
|
|
|
|
Date: Sun, 16 Sep 2018 11:07:14 -0700 |
|
|
|
|
|
Subject: [PATCH] Add Musl support |
|
|
|
|
|
|
|
|
|
|
|
The *48_r functions are glibc extensions that also happen to be supported |
|
|
|
|
|
by uclibc as well. Adapted from the Android solution. |
|
|
|
|
|
|
|
|
|
|
|
__USE_FILE_OFFSET64 is glibc specific so use LARGEFILE_SOURCE. |
|
|
|
|
|
|
|
|
|
|
|
Signed-off-by: Rosen Penev <rosenp@gmail.com> |
|
|
|
|
|
---
|
|
|
|
|
|
os/os-linux.h | 17 +++++++++++++++++ |
|
|
|
|
|
oslib/libmtd_common.h | 2 +- |
|
|
|
|
|
2 files changed, 18 insertions(+), 1 deletion(-) |
|
|
|
|
|
|
|
|
|
|
|
diff --git a/os/os-linux.h b/os/os-linux.h
|
|
|
|
|
|
index 6b63d123..e06aadae 100644
|
|
|
|
|
|
--- a/os/os-linux.h
|
|
|
|
|
|
+++ b/os/os-linux.h
|
|
|
|
|
|
@@ -60,7 +60,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
typedef cpu_set_t os_cpu_mask_t; |
|
|
|
|
|
|
|
|
|
|
|
+#if defined(__GLIBC__) || defined(__UCLIBC__)
|
|
|
|
|
|
typedef struct drand48_data os_random_state_t; |
|
|
|
|
|
+#else
|
|
|
|
|
|
+typedef struct { unsigned short r[3]; } os_random_state_t;
|
|
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef CONFIG_3ARG_AFFINITY |
|
|
|
|
|
#define fio_setaffinity(pid, cpumask) \ |
|
|
|
|
|
@@ -172,14 +176,27 @@ static inline unsigned long long os_phys_mem(void)
|
|
|
|
|
|
|
|
|
|
|
|
static inline void os_random_seed(unsigned long seed, os_random_state_t *rs) |
|
|
|
|
|
{ |
|
|
|
|
|
+#if defined(__GLIBC__) || defined (__UCLIBC__)
|
|
|
|
|
|
srand48_r(seed, rs); |
|
|
|
|
|
+#else
|
|
|
|
|
|
+ rs->r[0] = seed & 0xffff;
|
|
|
|
|
|
+ seed >>= 16;
|
|
|
|
|
|
+ rs->r[1] = seed & 0xffff;
|
|
|
|
|
|
+ seed >>= 16;
|
|
|
|
|
|
+ rs->r[2] = seed & 0xffff;
|
|
|
|
|
|
+ seed48(rs->r);
|
|
|
|
|
|
+#endif
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static inline long os_random_long(os_random_state_t *rs) |
|
|
|
|
|
{ |
|
|
|
|
|
long val; |
|
|
|
|
|
|
|
|
|
|
|
+#if defined(__GLIBC__) || (__UCLIBC__)
|
|
|
|
|
|
lrand48_r(rs, &val); |
|
|
|
|
|
+#else
|
|
|
|
|
|
+ val = nrand48(rs->r);
|
|
|
|
|
|
+#endif
|
|
|
|
|
|
return val; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
diff --git a/oslib/libmtd_common.h b/oslib/libmtd_common.h
|
|
|
|
|
|
index 4ed9f0ba..c5cfd217 100644
|
|
|
|
|
|
--- a/oslib/libmtd_common.h
|
|
|
|
|
|
+++ b/oslib/libmtd_common.h
|
|
|
|
|
|
@@ -69,7 +69,7 @@ extern "C" {
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
/* define a print format specifier for off_t */ |
|
|
|
|
|
-#ifdef __USE_FILE_OFFSET64
|
|
|
|
|
|
+#ifdef _LARGEFILE_SOURCE
|
|
|
|
|
|
#define PRIxoff_t PRIx64 |
|
|
|
|
|
#define PRIdoff_t PRId64 |
|
|
|
|
|
#else |
|
|
|
|
|
--
|
|
|
|
|
|
2.19.1 |
|
|
|
|
|
|