config_host_mak="config-host.mak"
config_host_ld="config-host.ld"
+# Default CFLAGS
+CFLAGS="-D_GNU_SOURCE"
+
# Print a helpful header at the top of config.log
echo "# FIO configure log $(date)" >> config.log
printf "# Configured with:" >> config.log
cc="${CC-${cross_prefix}gcc}"
+# parse options
+for opt do
+ optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
+ case "$opt" in
+ --cc=*) CC="$optarg"
+ ;;
+ *)
+ echo "Bad option $opt"
+ exit 1
+ esac
+done
+
if check_define __linux__ ; then
targetos="Linux"
-elif check_define _WIN32 ; then
- targetos='MINGW32'
elif check_define __OpenBSD__ ; then
targetos='OpenBSD'
elif check_define __sun__ ; then
if test -z "$cpu" && test "$(isainfo -k)" = "amd64"; then
cpu="x86_64"
fi
+ ;;
+CYGWIN*)
+ echo "Forcing known good options on Windows"
+ if test -z "$CC" ; then
+ CC="x86_64-w64-mingw32-gcc"
+ fi
+ echo "CC=$CC" > $config_host_mak
+ echo "CONFIG_LITTLE_ENDIAN=y" >> $config_host_mak
+ echo "CONFIG_64BIT_LLP64=y" >> $config_host_mak
+ echo "CONFIG_CLOCK_GETTIME=y" >> $config_host_mak
+ echo "CONFIG_CLOCK_MONOTONIC=y" >> $config_host_mak
+ echo "CONFIG_GETTIMEOFDAY=y" >> $config_host_mak
+ echo "CONFIG_FADVISE=y" >> $config_host_mak
+ echo "CONFIG_SOCKLEN_T=y" >> $config_host_mak
+ echo "CONFIG_POSIX_FALLOCATE=y" >> $config_host_mak
+ echo "CONFIG_FADVISE=y" >> $config_host_mak
+ echo "CONFIG_SFAA=y" >> $config_host_mak
+ echo "CONFIG_RUSAGE_THREAD=y" >> $config_host_mak
+ exit 0
esac
if test ! -z "$cpu" ; then
else
CC=gcc
fi
- elif test "$targetos" = "MINGW32"; then
- CC=x86_64-w64-mingw32-gcc
fi
fi
cc="${CC-${cross_prefix}gcc}"
+##########################################
+# check endianness
+bigendian="no"
+cat > $TMPC <<EOF
+#include <inttypes.h>
+int main(void)
+{
+ volatile uint32_t i=0x01234567;
+ return (*((uint8_t*)(&i))) == 0x67;
+}
+EOF
+if compile_prog "" "" "endian"; then
+ $TMPE && bigendian="yes"
+fi
+
+
echo "Operating system $targetos"
echo "CPU $cpu"
+echo "Big endian $bigendian"
echo "Compiler $cc"
echo
linux_2arg_affinity="no"
linux_3arg_affinity="no"
cat > $TMPC << EOF
-#define _GNU_SOURCE
#include <sched.h>
int main(int argc, char **argv)
{
linux_3arg_affinity="yes"
else
cat > $TMPC << EOF
-#define _GNU_SOURCE
#include <sched.h>
int main(int argc, char **argv)
{
cat > $TMPC << EOF
#include <stdio.h>
#include <unistd.h>
-#define _GNU_SOURCE
#include <fcntl.h>
#include <linux/fs.h>
int main(int argc, char **argv)
# splice probe
linux_splice="no"
cat > $TMPC << EOF
-#define _GNU_SOURCE
#include <stdio.h>
#include <fcntl.h>
int main(int argc, char **argv)
# fusion-aw probe
fusion_aw="no"
cat > $TMPC << EOF
-#include <vsl_dp_experimental/vectored_write.h>
+#include <nvm/vectored_write.h>
int main(int argc, char **argv)
{
struct vsl_iovec iov;
return vsl_vectored_write(0, &iov, 0, O_ATOMIC);
}
EOF
-if compile_prog "" "" "fusion-aw"; then
+if compile_prog "" "-L/usr/lib/fio -lnvm-primitives" "fusion-aw"; then
+ LIBS="-L/usr/lib/fio -lnvm-primitives $LIBS"
fusion_aw="yes"
fi
echo "Fusion-io atomic engine $fusion_aw"
fi
echo "__thread $tls_thread"
+##########################################
+# Check whether we have getrusage(RUSAGE_THREAD)
+rusage_thread="no"
+cat > $TMPC << EOF
+#include <sys/time.h>
+#include <sys/resource.h>
+int main(int argc, char **argv)
+{
+ struct rusage ru;
+ getrusage(RUSAGE_THREAD, &ru);
+ return 0;
+}
+EOF
+if compile_prog "" "" "RUSAGE_THREAD"; then
+ rusage_thread="yes"
+fi
+echo "RUSAGE_THREAD $rusage_thread"
+
#############################################################################
echo "# Automatically generated by configure - do not modify" > $config_host_mak
echo "Unknown wordsize!"
exit 1
fi
+if test "$bigendian" = "yes" ; then
+ echo "CONFIG_BIG_ENDIAN=y" >> $config_host_mak
+else
+ echo "CONFIG_LITTLE_ENDIAN=y" >> $config_host_mak
+fi
if test "$libaio" = "yes" ; then
echo "CONFIG_LIBAIO=y" >> $config_host_mak
fi
if test "$tls_thread" = "yes" ; then
echo "CONFIG_TLS_THREAD=y" >> $config_host_mak
fi
+if test "$rusage_thread" = "yes" ; then
+ echo "CONFIG_RUSAGE_THREAD=y" >> $config_host_mak
+fi
echo "LIBS+=$LIBS" >> $config_host_mak
echo "CC=$cc" >> $config_host_mak
+echo "CFLAGS=$CFLAGS" >> $config_host_mak