A few fixes for 32-bit compiles
- Change the HAVE_SSE to HAVE_SSE4_2 and only provide it on
x86-64.
- Cast two values that otherwise cause the compiler to warn on 32-bit
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
diff --git a/arch/arch-x86.h b/arch/arch-x86.h
index bffd1dd..2e803cb 100644
--- a/arch/arch-x86.h
+++ b/arch/arch-x86.h
@@ -48,7 +48,6 @@
}
#define ARCH_HAVE_FFZ
-#define ARCH_HAVE_SSE
#define ARCH_HAVE_CPU_CLOCK
#endif
diff --git a/arch/arch-x86_64.h b/arch/arch-x86_64.h
index 3ea8070..6dbeee0 100644
--- a/arch/arch-x86_64.h
+++ b/arch/arch-x86_64.h
@@ -48,7 +48,7 @@
}
#define ARCH_HAVE_FFZ
-#define ARCH_HAVE_SSE
+#define ARCH_HAVE_SSE4_2
#define ARCH_HAVE_CPU_CLOCK
#endif
diff --git a/crc/crc32c-intel.c b/crc/crc32c-intel.c
index 77d6df4..969a037 100644
--- a/crc/crc32c-intel.c
+++ b/crc/crc32c-intel.c
@@ -18,7 +18,7 @@
* Volume 2A: Instruction Set Reference, A-M
*/
-#ifdef ARCH_HAVE_SSE
+#ifdef ARCH_HAVE_SSE4_2
#if BITS_PER_LONG == 64
#define REX_PRE "0x48, "
diff --git a/crc/crc32c.h b/crc/crc32c.h
index 50f3665..596fd6c 100644
--- a/crc/crc32c.h
+++ b/crc/crc32c.h
@@ -22,7 +22,7 @@
extern uint32_t crc32c(unsigned char const *, unsigned long);
-#ifdef ARCH_HAVE_SSE
+#ifdef ARCH_HAVE_SSE4_2
extern uint32_t crc32c_intel(unsigned char const *, unsigned long);
extern int crc32c_intel_works(void);
#else
diff --git a/engines/binject.c b/engines/binject.c
index 0bdaa24..f7e56eb 100644
--- a/engines/binject.c
+++ b/engines/binject.c
@@ -146,7 +146,7 @@
for (i = 0; i < events; i++) {
struct b_user_cmd *buc = (struct b_user_cmd *) buf + i;
- bd->events[ev_index] = (struct io_u *) buc->usr_ptr;
+ bd->events[ev_index] = (struct io_u *) (unsigned long) buc->usr_ptr;
ev_index++;
}
}
diff --git a/verify.c b/verify.c
index f537553..ea1a911 100644
--- a/verify.c
+++ b/verify.c
@@ -501,7 +501,7 @@
log_err("trim: verify failed at file %s offset %llu, length %lu"
", block offset %lu\n",
io_u->file->file_name, io_u->offset, io_u->buflen,
- (p - io_u->buf));
+ (unsigned long) (p - io_u->buf));
return ret;
}