| From 71471cb1d05f3877c8fb935fbf70a6bae789ac49 Mon Sep 17 00:00:00 2001 |
| From: Jens Axboe <axboe@fb.com> |
| Date: Thu, 10 Mar 2016 08:09:41 -0700 |
| Subject: [PATCH] Fix compile of test programs on archs that use arch_flags at |
| runtime |
| |
| SuperH compile currently fails with: |
| |
| gettime.o: In function fio_gettime': |
| /home/thomas/projets/buildroot/output/build/fio-fio-2.7/gettime.c:163: undefined reference to arch_flags' |
| gettime.o: In function utime_since_now': |
| /home/thomas/projets/buildroot/output/build/fio-fio-2.7/gettime.c:164: undefined reference to arch_flags' |
| gettime.o: In function mtime_since_now': |
| /home/thomas/projets/buildroot/output/build/fio-fio-2.7/gettime.c:164: undefined reference to arch_flags' |
| gettime.o: In function time_since_now': |
| /home/thomas/projets/buildroot/output/build/fio-fio-2.7/gettime.c:164: undefined reference to arch_flags' |
| mutex.o: In function fio_mutex_up': |
| /home/thomas/projets/buildroot/output/build/fio-fio-2.7/mutex.c:189: undefined reference to arch_flags' |
| collect2: error: ld returned 1 exit status |
| Makefile:375: recipe for target 't/stest' failed |
| make[2]: *** [t/stest] Error 1 |
| make[2]: *** Waiting for unfinished jobs.... |
| |
| Fix that by ensuring we have a stub arch.o with the necessary arch flags |
| for the standalone test programs. |
| |
| Signed-off-by: Jens Axboe <axboe@fb.com> |
| --- |
| Makefile | 6 +++--- |
| t/arch.c | 5 +++++ |
| t/dedupe.c | 1 + |
| t/lfsr-test.c | 2 ++ |
| t/stest.c | 2 ++ |
| 5 files changed, 13 insertions(+), 3 deletions(-) |
| create mode 100644 t/arch.c |
| |
| diff --git a/Makefile b/Makefile |
| index 6b4c9db..a2502dc 100644 |
| --- a/Makefile |
| +++ b/Makefile |
| @@ -191,7 +191,7 @@ endif |
| -include $(OBJS:.o=.d) |
| |
| T_SMALLOC_OBJS = t/stest.o |
| -T_SMALLOC_OBJS += gettime.o mutex.o smalloc.o t/log.o t/debug.o |
| +T_SMALLOC_OBJS += gettime.o mutex.o smalloc.o t/log.o t/debug.o t/arch.o |
| T_SMALLOC_PROGS = t/stest |
| |
| T_IEEE_OBJS = t/ieee754.o |
| @@ -208,7 +208,7 @@ T_AXMAP_OBJS += lib/lfsr.o lib/axmap.o |
| T_AXMAP_PROGS = t/axmap |
| |
| T_LFSR_TEST_OBJS = t/lfsr-test.o |
| -T_LFSR_TEST_OBJS += lib/lfsr.o gettime.o t/log.o t/debug.o |
| +T_LFSR_TEST_OBJS += lib/lfsr.o gettime.o t/log.o t/debug.o t/arch.o |
| T_LFSR_TEST_PROGS = t/lfsr-test |
| |
| T_GEN_RAND_OBJS = t/gen-rand.o |
| @@ -223,7 +223,7 @@ endif |
| |
| T_DEDUPE_OBJS = t/dedupe.o |
| T_DEDUPE_OBJS += lib/rbtree.o t/log.o mutex.o smalloc.o gettime.o crc/md5.o \ |
| - lib/memalign.o lib/bloom.o t/debug.o crc/xxhash.o \ |
| + lib/memalign.o lib/bloom.o t/debug.o crc/xxhash.o t/arch.o \ |
| crc/murmur3.o crc/crc32c.o crc/crc32c-intel.o crc/fnv.o |
| T_DEDUPE_PROGS = t/fio-dedupe |
| |
| diff --git a/t/arch.c b/t/arch.c |
| new file mode 100644 |
| index 0000000..befb7c7 |
| --- /dev/null |
| +++ b/t/arch.c |
| @@ -0,0 +1,5 @@ |
| +#include "../arch/arch.h" |
| + |
| +unsigned long arch_flags = 0; |
| +int tsc_reliable; |
| +int arch_random; |
| diff --git a/t/dedupe.c b/t/dedupe.c |
| index 3a66820..7856da1 100644 |
| --- a/t/dedupe.c |
| +++ b/t/dedupe.c |
| @@ -537,6 +537,7 @@ int main(int argc, char *argv[]) |
| uint64_t nextents = 0, nchunks = 0; |
| int c, ret; |
| |
| + arch_init(argv); |
| debug_init(); |
| |
| while ((c = getopt(argc, argv, "b:t:d:o:c:p:B:")) != -1) { |
| diff --git a/t/lfsr-test.c b/t/lfsr-test.c |
| index 4352b89..bad5097 100644 |
| --- a/t/lfsr-test.c |
| +++ b/t/lfsr-test.c |
| @@ -38,6 +38,8 @@ int main(int argc, char *argv[]) |
| void *v = NULL, *v_start; |
| double total, mean; |
| |
| + arch_init(argv); |
| + |
| /* Read arguments */ |
| switch (argc) { |
| case 5: if (strncmp(argv[4], "verify", 7) == 0) |
| diff --git a/t/stest.c b/t/stest.c |
| index fb51989..0e0d8b0 100644 |
| --- a/t/stest.c |
| +++ b/t/stest.c |
| @@ -4,6 +4,7 @@ |
| |
| #include "../smalloc.h" |
| #include "../flist.h" |
| +#include "../arch/arch.h" |
| #include "debug.h" |
| |
| #define MAGIC1 0xa9b1c8d2 |
| @@ -69,6 +70,7 @@ static int do_specific_alloc(unsigned long size) |
| |
| int main(int argc, char *argv[]) |
| { |
| + arch_init(argv); |
| sinit(); |
| debug_init(); |
| |
| -- |
| 2.6.4 |
| |