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 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
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
+ exit 0
esac
if test ! -z "$cpu" ; then
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)
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