configure: kill windows FIO_HAVE_FDATASYNC
[fio.git] / configure
index 27cfb4d119390d69248d3b000f6dc426c1499792..b49497b77a35d903b9d257f57d594d94147b13f8 100755 (executable)
--- a/configure
+++ b/configure
@@ -26,6 +26,9 @@ rm -rf config.log
 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
@@ -102,22 +105,20 @@ cpu=""
 
 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 test `uname -o` = Cygwin ; then
-  echo "Forcing known good options on Windows"
-  echo "CC=x86_64-w64-mingw32-gcc" >> $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_STRSEP=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
-  exit 0
 elif check_define __OpenBSD__ ; then
   targetos='OpenBSD'
 elif check_define __sun__ ; then
@@ -146,6 +147,27 @@ SunOS)
   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
+  echo "CONFIG_WINDOWSAIO=y"       >> $config_host_mak
+  echo "CONFIG_FDATASYNC=y"        >> $config_host_mak
+  exit 0
 esac
 
 if test ! -z "$cpu" ; then
@@ -226,8 +248,25 @@ 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
 
@@ -447,7 +486,6 @@ echo "POSIX fallocate               $posix_fallocate"
 linux_2arg_affinity="no"
 linux_3arg_affinity="no"
 cat > $TMPC << EOF
-#define _GNU_SOURCE
 #include <sched.h>
 int main(int argc, char **argv)
 {
@@ -459,7 +497,6 @@ if compile_prog "" "" "sched_setaffinity(,,)"; then
   linux_3arg_affinity="yes"
 else
   cat > $TMPC << EOF
-#define _GNU_SOURCE
 #include <sched.h>
 int main(int argc, char **argv)
 {
@@ -568,7 +605,6 @@ sync_file_range="no"
 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)
@@ -609,7 +645,6 @@ echo "EXT4 move extent              $ext4_me"
 # splice probe
 linux_splice="no"
 cat > $TMPC << EOF
-#define _GNU_SOURCE
 #include <stdio.h>
 #include <fcntl.h>
 int main(int argc, char **argv)
@@ -643,14 +678,15 @@ echo "GUASI                         $guasi"
 # 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"
@@ -755,6 +791,24 @@ if compile_prog "" "" "__thread"; then
 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
@@ -770,6 +824,11 @@ else
   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
@@ -850,6 +909,10 @@ 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