configure revision 135be493d843d4cae2966a35cbd22a3058ec8e4b
167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#!/bin/sh 267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# 367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# Fio configure script. Heavily influenced by the manual qemu configure 467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# script. Sad this this is easier than autoconf and enemies. 567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# 667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# set temporary file name 867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test ! -z "$TMPDIR" ; then 967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe TMPDIR1="${TMPDIR}" 1067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelif test ! -z "$TEMPDIR" ; then 1167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe TMPDIR1="${TEMPDIR}" 1267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelse 1367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe TMPDIR1="/tmp" 1467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 1567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 1667bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeTMPC="${TMPDIR1}/fio-conf-${RANDOM}-$$-${RANDOM}.c" 1767bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeTMPO="${TMPDIR1}/fio-conf-${RANDOM}-$$-${RANDOM}.o" 1867bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeTMPE="${TMPDIR1}/fio-conf-${RANDOM}-$$-${RANDOM}.exe" 1967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 2067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# NB: do not call "exit" in the trap handler; this is buggy with some shells; 2167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# see <1285349658-3122-1-git-send-email-loic.minier@linaro.org> 2267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboetrap "rm -f $TMPC $TMPO $TMPE" EXIT INT QUIT TERM 2367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 2467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboerm -rf config.log 2567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 2667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeconfig_host_mak="config-host.mak" 274feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboeconfig_host_h="config-host.h" 284feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe 294feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboerm -rf $config_host_mak 304feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboerm -rf $config_host_h 3167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 3244404c5a7f90aa42c3228b56b6f686f15a50fb29Jens Axboe# Default CFLAGS 33208e4c8bcd943b356834541c0b4d08710f348edbJens AxboeCFLAGS="-D_GNU_SOURCE" 34208e4c8bcd943b356834541c0b4d08710f348edbJens AxboeEXTFLAGS="-include config-host.h" 3567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 3667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# Print a helpful header at the top of config.log 3767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "# FIO configure log $(date)" >> config.log 3867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeprintf "# Configured with:" >> config.log 3967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeprintf " '%s'" "$0" "$@" >> config.log 4067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho >> config.log 4167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "#" >> config.log 4267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 437560fe7c80e5a402310907d7d6c187b6a2ab36d8Jens Axboe# Print configure header at the top of $config_host_h 447560fe7c80e5a402310907d7d6c187b6a2ab36d8Jens Axboeecho "/*" > $config_host_h 457560fe7c80e5a402310907d7d6c187b6a2ab36d8Jens Axboeecho " * Automatically generated by configure - do not modify" >> $config_host_h 467560fe7c80e5a402310907d7d6c187b6a2ab36d8Jens Axboeprintf " * Configured with:" >> $config_host_h 477560fe7c80e5a402310907d7d6c187b6a2ab36d8Jens Axboeprintf " * '%s'" "$0" "$@" >> $config_host_h 487560fe7c80e5a402310907d7d6c187b6a2ab36d8Jens Axboeecho "" >> $config_host_h 497560fe7c80e5a402310907d7d6c187b6a2ab36d8Jens Axboeecho " */" >> $config_host_h 507560fe7c80e5a402310907d7d6c187b6a2ab36d8Jens Axboe 5167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboedo_cc() { 5267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe # Run the compiler, capturing its output to the log. 5367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe echo $cc "$@" >> config.log 5467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe $cc "$@" >> config.log 2>&1 || return $? 5567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe # Test passed. If this is an --enable-werror build, rerun 5667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe # the test with -Werror and bail out if it fails. This 5767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe # makes warning-generating-errors in configure test code 5867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe # obvious to developers. 5967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe if test "$werror" != "yes"; then 6067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return 0 6167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe fi 6267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe # Don't bother rerunning the compile if we were already using -Werror 6367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe case "$*" in 6467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe *-Werror*) 6567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return 0 6667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe ;; 6767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe esac 6867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe echo $cc -Werror "$@" >> config.log 6967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe $cc -Werror "$@" >> config.log 2>&1 && return $? 7067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe echo "ERROR: configure test passed without -Werror but failed with -Werror." 7167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe echo "This is probably a bug in the configure script. The failing command" 7267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe echo "will be at the bottom of config.log." 7367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe echo "You can run configure with --disable-werror to bypass this check." 7467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe exit 1 7567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 7667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 7767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecompile_object() { 7867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe do_cc $CFLAGS -c -o $TMPO $TMPC 7967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 8067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 8167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecompile_prog() { 8267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe local_cflags="$1" 8367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe local_ldflags="$2" 8467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe echo "Compiling test case $3" >> config.log 8567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe do_cc $CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags 8667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 8767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 8867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefeature_not_found() { 8967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe feature=$1 9067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 9167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe echo "ERROR" 9267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe echo "ERROR: User requested feature $feature" 9367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe echo "ERROR: configure was not able to find it" 9467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe echo "ERROR" 9567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe exit 1; 9667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 9767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 9867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboehas() { 9967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe type "$1" >/dev/null 2>&1 10067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 10167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 10267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecheck_define() { 10367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cat > $TMPC <<EOF 10467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#if !defined($1) 10567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#error $1 not defined 10667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#endif 10767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(void) 10867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 10967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return 0; 11067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 11167bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 11267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe compile_object 11367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 11467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 1154feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboeoutput_sym() { 1164feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe echo "$1=y" >> $config_host_mak 1174feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe echo "#define $1" >> $config_host_h 1184feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe} 1194feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe 12067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboetargetos="" 12167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecpu="" 12267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 12367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecc="${CC-${cross_prefix}gcc}" 12467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 12591f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe# default options 12647f4463579ab92332ef995774d8578b0191da6e4Jens Axboeshow_help="no" 12747f4463579ab92332ef995774d8578b0191da6e4Jens Axboeexit_val=0 128135be493d843d4cae2966a35cbd22a3058ec8e4bJens Axboegfio="no" 12991f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe 130cb1125b0b197278894896af14fe8ecdf7b92756dJens Axboe# parse options 131cb1125b0b197278894896af14fe8ecdf7b92756dJens Axboefor opt do 132cb1125b0b197278894896af14fe8ecdf7b92756dJens Axboe optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'` 133cb1125b0b197278894896af14fe8ecdf7b92756dJens Axboe case "$opt" in 13491f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe --cc=*) 13591f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe CC="$optarg" 13691f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe ;; 137135be493d843d4cae2966a35cbd22a3058ec8e4bJens Axboe --extra-cflags=*) 138135be493d843d4cae2966a35cbd22a3058ec8e4bJens Axboe CFLAGS="$CFLAGS $optarg" 139208e4c8bcd943b356834541c0b4d08710f348edbJens Axboe ;; 14091f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe --enable-gfio) 14191f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe gfio="yes" 14291f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe ;; 143827da4f5e9ffd1aa363441ea07f08259ec582dedJens Axboe --help) 14447f4463579ab92332ef995774d8578b0191da6e4Jens Axboe show_help="yes" 145827da4f5e9ffd1aa363441ea07f08259ec582dedJens Axboe ;; 146cb1125b0b197278894896af14fe8ecdf7b92756dJens Axboe *) 147cb1125b0b197278894896af14fe8ecdf7b92756dJens Axboe echo "Bad option $opt" 14847f4463579ab92332ef995774d8578b0191da6e4Jens Axboe show_help="yes" 14947f4463579ab92332ef995774d8578b0191da6e4Jens Axboe exit_val=1 150cb1125b0b197278894896af14fe8ecdf7b92756dJens Axboe esac 151cb1125b0b197278894896af14fe8ecdf7b92756dJens Axboedone 152cb1125b0b197278894896af14fe8ecdf7b92756dJens Axboe 15347f4463579ab92332ef995774d8578b0191da6e4Jens Axboeif test "$show_help" = "yes" ; then 15447f4463579ab92332ef995774d8578b0191da6e4Jens Axboe echo "--cc= Specify compiler to use" 155899fab33f71cd9fd7037ee4c0df707daa86a0bbdJens Axboe echo "--extra-cflags= Specify extra CFLAGS to pass to compiler" 15647f4463579ab92332ef995774d8578b0191da6e4Jens Axboe echo "--enable-gfio Enable building of gtk gfio" 15747f4463579ab92332ef995774d8578b0191da6e4Jens Axboe exit $exit_val 15847f4463579ab92332ef995774d8578b0191da6e4Jens Axboefi 15947f4463579ab92332ef995774d8578b0191da6e4Jens Axboe 16067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif check_define __linux__ ; then 16167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe targetos="Linux" 16267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelif check_define __OpenBSD__ ; then 16367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe targetos='OpenBSD' 16467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelif check_define __sun__ ; then 16567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe targetos='SunOS' 16667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelse 16767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe targetos=`uname -s` 16867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 16967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 17067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# Some host OSes need non-standard checks for which CPU to use. 17167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# Note that these checks are broken for cross-compilation: if you're 17267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# cross-compiling to one of these OSes then you'll need to specify 17367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# the correct CPU with the --cpu option. 17467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecase $targetos in 17567bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeDarwin) 17667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe # on Leopard most of the system is 32-bit, so we have to ask the kernel if 17767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe # we can run 64-bit userspace code. 17867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe # If the user didn't specify a CPU explicitly and the kernel says this is 17967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe # 64 bit hw, then assume x86_64. Otherwise fall through to the usual 18067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe # detection code. 18167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe if test -z "$cpu" && test "$(sysctl -n hw.optional.x86_64)" = "1"; then 18267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="x86_64" 18367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe fi 18467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe ;; 18567bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeSunOS) 18667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe # `uname -m` returns i86pc even on an x86_64 box, so default based on isainfo 18767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe if test -z "$cpu" && test "$(isainfo -k)" = "amd64"; then 18867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="x86_64" 18967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe fi 190cfd94f79c362da249d22a59b6ede367ce3d2ba1dJens Axboe ;; 191cfd94f79c362da249d22a59b6ede367ce3d2ba1dJens AxboeCYGWIN*) 192cfd94f79c362da249d22a59b6ede367ce3d2ba1dJens Axboe echo "Forcing known good options on Windows" 1934578d01f2fb310e4bd301176dfdd87827b9ba5d3Jens Axboe if test -z "$CC" ; then 1944578d01f2fb310e4bd301176dfdd87827b9ba5d3Jens Axboe CC="x86_64-w64-mingw32-gcc" 1954578d01f2fb310e4bd301176dfdd87827b9ba5d3Jens Axboe fi 1964feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_LITTLE_ENDIAN" 1974feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_64BIT_LLP64" 1984feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_CLOCK_GETTIME" 1994feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_CLOCK_MONOTONIC" 2004feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_GETTIMEOFDAY" 2014feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_FADVISE" 2024feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_SOCKLEN_T" 2034feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_POSIX_FALLOCATE" 2044feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_FADVISE" 2054feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_SFAA" 2064feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_RUSAGE_THREAD" 2074feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_WINDOWSAIO" 2084feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_FDATASYNC" 209dc0518cad2a86ce860347f77880b4cdcb842c296Bruce Cran output_sym "CONFIG_GETTIMEOFDAY" 210dc0518cad2a86ce860347f77880b4cdcb842c296Bruce Cran output_sym "CONFIG_CLOCK_GETTIME" 2114feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe echo "CC=$CC" >> $config_host_mak 212899fab33f71cd9fd7037ee4c0df707daa86a0bbdJens Axboe echo "EXTFLAGS=$CFLAGS -include config-host.h -D_GNU_SOURCE" >> $config_host_mak 213cfd94f79c362da249d22a59b6ede367ce3d2ba1dJens Axboe exit 0 21467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeesac 21567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 21667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test ! -z "$cpu" ; then 21767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe # command line argument 21867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe : 21967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelif check_define __i386__ ; then 22067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="i386" 22167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelif check_define __x86_64__ ; then 22267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="x86_64" 22367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelif check_define __sparc__ ; then 22467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe if check_define __arch64__ ; then 22567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="sparc64" 22667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe else 22767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="sparc" 22867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe fi 22967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelif check_define _ARCH_PPC ; then 23067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe if check_define _ARCH_PPC64 ; then 23167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="ppc64" 23267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe else 23367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="ppc" 23467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe fi 23567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelif check_define __mips__ ; then 23667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="mips" 23767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelif check_define __ia64__ ; then 23867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="ia64" 23967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelif check_define __s390__ ; then 24067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe if check_define __s390x__ ; then 24167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="s390x" 24267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe else 24367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="s390" 24467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe fi 24567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelif check_define __arm__ ; then 24667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="arm" 24767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelif check_define __hppa__ ; then 24867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="hppa" 24967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelse 25067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu=`uname -m` 25167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 25267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 25367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# Normalise host CPU name and set ARCH. 25467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecase "$cpu" in 25567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe ia64|ppc|ppc64|s390|s390x|sparc64) 25667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="$cpu" 25767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe ;; 25867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe i386|i486|i586|i686|i86pc|BePC) 25967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="i386" 26067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe ;; 26167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe x86_64|amd64) 26267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="x86_64" 26367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe ;; 26467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe armv*b|armv*l|arm) 26567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="arm" 26667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe ;; 26767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe hppa|parisc|parisc64) 26867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="hppa" 26967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe ;; 27067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe mips*) 27167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="mips" 27267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe ;; 27367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe sparc|sun4[cdmuv]) 27467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu="sparc" 27567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe ;; 27667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe *) 27767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe echo "Unknown CPU" 27867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe exit 1; 27967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe ;; 28067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeesac 28167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 282dcbbf5b01c0ffb3e526c8e0e00bacd4fa00527daJens Axboeif test -z "$CC" ; then 28367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe if test "$targetos" = "FreeBSD"; then 28467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe if has clang; then 28567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe CC=clang 28667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe else 28767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe CC=gcc 28867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe fi 28967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe fi 29067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 29167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 29267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecc="${CC-${cross_prefix}gcc}" 29367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 2940dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens Axboe########################################## 2950dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens Axboe# check endianness 2960dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens Axboebigendian="no" 2970dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens Axboecat > $TMPC <<EOF 2980dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens Axboe#include <inttypes.h> 2990dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens Axboeint main(void) 3000dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens Axboe{ 3010dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens Axboe volatile uint32_t i=0x01234567; 3020dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens Axboe return (*((uint8_t*)(&i))) == 0x67; 3030dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens Axboe} 3040dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens AxboeEOF 3050dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens Axboeif compile_prog "" "" "endian"; then 3060dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens Axboe $TMPE && bigendian="yes" 3070dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens Axboefi 3080dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens Axboe 3090dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens Axboe 31067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "Operating system $targetos" 31167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "CPU $cpu" 3120dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens Axboeecho "Big endian $bigendian" 31367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "Compiler $cc" 31467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho 31567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 31667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 31767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# check for wordsize 31867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboewordsize="0" 31967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC <<EOF 32067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <stdio.h> 32167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(void) 32267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 32367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe unsigned int wsize = sizeof(long) * 8; 32467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe printf("%d\n", wsize); 32567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return 0; 32667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 32767bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 32867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "" "wordsize"; then 32967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe wordsize=$($TMPE) 33067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 33167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "Wordsize $wordsize" 33267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 33367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 33467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# linux-aio probe 33567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboelibaio="no" 33667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC <<EOF 33767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <libaio.h> 33867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <stddef.h> 33967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(void) 34067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 34167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe io_setup(0, NULL); 34267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return 0; 34367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 34467bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 34567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "-laio" "libaio" ; then 34667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe libaio=yes 34767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe LIBS="-laio $LIBS" 34867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelse 34967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe if test "$libaio" = "yes" ; then 35067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe feature_not_found "linux AIO" 35167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe fi 35267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe libaio=no 35367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 35467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "Linux AIO support $libaio" 35567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 35667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 35767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# posix aio probe 35867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeposix_aio="no" 35967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeposix_aio_lrt="no" 36067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC <<EOF 36167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <aio.h> 36267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(void) 36367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 36467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe struct aiocb cb; 36567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe aio_read(&cb); 36667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return 0; 36767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 36867bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 36967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "" "posixaio" ; then 37067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe posix_aio="yes" 37167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelif compile_prog "" "-lrt" "posixaio"; then 37267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe posix_aio="yes" 37367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe posix_aio_lrt="yes" 37467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe LIBS="-lrt $LIBS" 37567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 37667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "POSIX AIO support $posix_aio" 37767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "POSIX AIO support needs -lrt $posix_aio_lrt" 37867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 37967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 38067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# posix aio fsync probe 38167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeposix_aio_fsync="no" 38267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$posix_aio" = "yes" ; then 38367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cat > $TMPC <<EOF 38467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <fcntl.h> 38567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <aio.h> 38667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(void) 38767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 38867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe struct aiocb cb; 38967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return aio_fsync(O_SYNC, &cb); 39067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return 0; 39167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 39267bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 39367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe if compile_prog "" "$LIBS" "posix_aio_fsync" ; then 39467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe posix_aio_fsync=yes 39567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe fi 39667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 39767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "POSIX AIO fsync $posix_aio_fsync" 39867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 39967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 40067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# solaris aio probe 40167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboesolaris_aio="no" 40267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC <<EOF 40367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <sys/types.h> 40467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <sys/asynch.h> 40567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <unistd.h> 40667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(void) 40767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 40867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe aio_result_t res; 40967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return aioread(0, NULL, 0, 0, SEEK_SET, &res); 41067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return 0; 41167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 41267bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 41367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "-laio" "solarisaio" ; then 41467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe solaris_aio=yes 41567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe LIBS="-laio $LIBS" 41667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 41767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "Solaris AIO support $solaris_aio" 41867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 41967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 42067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# __sync_fetch_and_and test 42167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboesfaa="no" 42267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 42367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboestatic int sfaa(int *ptr) 42467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 42567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return __sync_fetch_and_and(ptr, 0); 42667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 42767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 42867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 42967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 43067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe int val = 42; 43167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe sfaa(&val); 43267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return val; 43367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 43467bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 43567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "" "__sync_fetch_and_add()" ; then 43667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe sfaa="yes" 43767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 43867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "__sync_fetch_and add $sfaa" 43967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 44067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 44167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# libverbs probe 44267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboelibverbs="no" 44367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 44467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <stdio.h> 44567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <infiniband/arch.h> 44667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 44767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 44867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe struct ibv_pd *pd = ibv_alloc_pd(NULL); 44967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return 0; 45067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 45167bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 45267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "-libverbs" "libverbs" ; then 45367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe libverbs="yes" 45467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe LIBS="-libverbs $LIBS" 45567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 45667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "libverbs $libverbs" 45767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 45867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 45967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# rdmacm probe 46067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboerdmacm="no" 46167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 46267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <stdio.h> 46367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <rdma/rdma_cma.h> 46467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 46567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 46667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe rdma_destroy_qp(NULL); 46767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return 0; 46867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 46967bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 47067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "-lrdmacm" "rdma"; then 47167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe rdmacm="yes" 47267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe LIBS="-lrdmacm $LIBS" 47367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 47467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "rdmacm $rdmacm" 47567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 47667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 47767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# Linux fallocate probe 47867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboelinux_fallocate="no" 47967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 48067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <stdio.h> 48167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <linux/falloc.h> 48267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 48367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 48467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe int r = fallocate(0, FALLOC_FL_KEEP_SIZE, 0, 1024); 48567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return r; 48667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 48767bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 48867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "" "linux_fallocate"; then 48967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe linux_fallocate="yes" 49067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 49167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "Linux fallocate $linux_fallocate" 49267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 49367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 49467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# POSIX fadvise probe 49567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeposix_fadvise="no" 49667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 49767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <stdio.h> 49867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <fcntl.h> 49967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 50067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 50167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe int r = posix_fadvise(0, 0, 0, POSIX_FADV_NORMAL); 50267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return r; 50367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 50467bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 50567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "" "posix_fadvise"; then 50667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe posix_fadvise="yes" 50767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 50867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "POSIX fadvise $posix_fadvise" 50967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 51067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 51167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# POSIX fallocate probe 51267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeposix_fallocate="no" 51367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 51467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <stdio.h> 51567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <fcntl.h> 51667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 51767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 51867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe int r = posix_fallocate(0, 0, 1024); 51967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return r; 52067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 52167bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 52267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "" "posix_fallocate"; then 52367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe posix_fallocate="yes" 52467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 52567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "POSIX fallocate $posix_fallocate" 52667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 52767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 52867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# sched_set/getaffinity 2 or 3 argument test 52967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboelinux_2arg_affinity="no" 53067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboelinux_3arg_affinity="no" 53167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 53267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <sched.h> 53367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 53467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 53567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu_set_t mask; 53667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return sched_setaffinity(0, sizeof(mask), &mask); 53767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 53867bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 53967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "" "sched_setaffinity(,,)"; then 54067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe linux_3arg_affinity="yes" 54167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelse 54267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cat > $TMPC << EOF 54367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <sched.h> 54467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 54567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 54667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cpu_set_t mask; 54767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return sched_setaffinity(0, &mask); 54867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 54967bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 55067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe if compile_prog "" "" "sched_setaffinity(,)"; then 55167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe linux_2arg_affinity="yes" 55267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe fi 55367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 55467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "sched_setaffinity(3 arg) $linux_3arg_affinity" 55567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "sched_setaffinity(2 arg) $linux_2arg_affinity" 55667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 55767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 55867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# clock_gettime probe 55967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeclock_gettime="no" 56067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 56167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <stdio.h> 56267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <time.h> 56367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 56467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 56567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return clock_gettime(0, NULL); 56667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 56767bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 56867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "" "clock_gettime"; then 56967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe clock_gettime="yes" 57067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelif compile_prog "" "-lrt" "clock_gettime"; then 57167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe clock_gettime="yes" 57267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe LIBS="-lrt $LIBS" 57367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 57467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "clock_gettime $clock_gettime" 57567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 57667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 57767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# CLOCK_MONOTONIC probe 57867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeclock_monotonic="no" 57967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$clock_gettime" = "yes" ; then 58067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cat > $TMPC << EOF 58167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <stdio.h> 58267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <time.h> 58367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 58467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 58567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return clock_gettime(CLOCK_MONOTONIC, NULL); 58667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 58767bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 58867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe if compile_prog "" "$LIBS" "clock monotonic"; then 58967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe clock_monotonic="yes" 59067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe fi 59167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 59267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "CLOCK_MONOTONIC $clock_monotonic" 59367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 59467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 59567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# CLOCK_MONOTONIC_PRECISE probe 59667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeclock_monotonic_precise="no" 59767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$clock_gettime" = "yes" ; then 59867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe cat > $TMPC << EOF 59967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <stdio.h> 60067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <time.h> 60167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 60267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 60367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return clock_gettime(CLOCK_MONOTONIC_PRECISE, NULL); 60467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 60567bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 60667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe if compile_prog "" "$LIBS" "clock monotonic precise"; then 60767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe clock_monotonic_precise="yes" 60867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe fi 60967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 61067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "CLOCK_MONOTONIC_PRECISE $clock_monotonic_precise" 61167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 61267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 61367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# gettimeofday() probe 61467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboegettimeofday="no" 61567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 61667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <sys/time.h> 61767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <stdio.h> 61867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 61967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 62067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe struct timeval tv; 62167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return gettimeofday(&tv, NULL); 62267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 62367bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 62467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "" "gettimeofday"; then 62567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe gettimeofday="yes" 62667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 62767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "gettimeofday $gettimeofday" 62867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 62967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 63067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# fdatasync() probe 63167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefdatasync="no" 63267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 63367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <stdio.h> 63467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <unistd.h> 63567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 63667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 63767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return fdatasync(0); 63867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 63967bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 64067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "" "fdatasync"; then 64167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe fdatasync="yes" 64267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 64367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "fdatasync $fdatasync" 64467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 64567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 64667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# sync_file_range() probe 64767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboesync_file_range="no" 64867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 64967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <stdio.h> 65067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <unistd.h> 65167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <fcntl.h> 65267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <linux/fs.h> 65367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 65467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 65567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe unsigned int flags = SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE | 65667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe SYNC_FILE_RANGE_WAIT_AFTER; 65767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return sync_file_range(0, 0, 0, flags); 65867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 65967bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 66067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "" "sync_file_range"; then 66167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe sync_file_range="yes" 66267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 66367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "sync_file_range $sync_file_range" 66467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 66567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 66667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# ext4 move extent probe 66767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeext4_me="no" 66867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 66967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <fcntl.h> 67067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <sys/ioctl.h> 67167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 67267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 67367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe struct move_extent me; 67467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return ioctl(0, EXT4_IOC_MOVE_EXT, &me); 67567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 67667bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 677c7165b8dc2b5e6c72ac79d9979cc8971f2eeac30Jens Axboeif compile_prog "" "" "ext4 move extent" ; then 678c7165b8dc2b5e6c72ac79d9979cc8971f2eeac30Jens Axboe ext4_me="yes" 679c7165b8dc2b5e6c72ac79d9979cc8971f2eeac30Jens Axboeelif test $targetos = "Linux" ; then 680c7165b8dc2b5e6c72ac79d9979cc8971f2eeac30Jens Axboe # On Linux, just default to it on and let it error at runtime if we really 681c7165b8dc2b5e6c72ac79d9979cc8971f2eeac30Jens Axboe # don't have it. None of my updated systems have it defined, but it does 682c7165b8dc2b5e6c72ac79d9979cc8971f2eeac30Jens Axboe # work. Takes a while to bubble back. 68367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe ext4_me="yes" 68467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 68567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "EXT4 move extent $ext4_me" 68667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 68767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 68867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# splice probe 68967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboelinux_splice="no" 69067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 69167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <stdio.h> 69267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <fcntl.h> 69367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 69467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 69567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return splice(0, NULL, 0, NULL, 0, SPLICE_F_NONBLOCK); 69667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 69767bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 69867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "" "linux splice"; then 69967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe linux_splice="yes" 70067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 70167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "Linux splice(2) $linux_splice" 70267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 70367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 70467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# GUASI probe 70567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeguasi="no" 70667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 70767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <guasi.h> 70867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <guasi_syscalls.h> 70967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 71067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 71167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe guasi_t ctx = guasi_create(0, 0, 0); 71267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return 0; 71367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 71467bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 71567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "" "guasi"; then 71667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe guasi="yes" 71767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 71867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "GUASI $guasi" 71967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 72067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 72167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# fusion-aw probe 72267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefusion_aw="no" 72367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 72499db656470de6175c85d21f55aaf0a30337aa011Jens Axboe#include <nvm/vectored_write.h> 72567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 72667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 72767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe struct vsl_iovec iov; 72867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return vsl_vectored_write(0, &iov, 0, O_ATOMIC); 72967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 73067bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 73199db656470de6175c85d21f55aaf0a30337aa011Jens Axboeif compile_prog "" "-L/usr/lib/fio -lnvm-primitives" "fusion-aw"; then 73299db656470de6175c85d21f55aaf0a30337aa011Jens Axboe LIBS="-L/usr/lib/fio -lnvm-primitives $LIBS" 73367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe fusion_aw="yes" 73467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 73567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "Fusion-io atomic engine $fusion_aw" 73667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 73767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 73867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# libnuma probe 73967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboelibnuma="no" 74067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 74167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <numa.h> 74267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 74367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 74467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return numa_available(); 74567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 74667bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 74767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "-lnuma" "libnuma"; then 74867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe libnuma="yes" 74967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe LIBS="-lnuma $LIBS" 75067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 75167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "libnuma $libnuma" 75267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 75367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 75467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# strsep() probe 75567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboestrsep="no" 75667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 75767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <string.h> 75867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 75967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 76067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe strsep(NULL, NULL); 76167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return 0; 76267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 76367bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 76467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "" "strsep"; then 76567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe strsep="yes" 76667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 76767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "strsep $strsep" 76867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 76967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 77067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# getopt_long_only() probe 77167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboegetopt_long_only="no" 77267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 77367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <unistd.h> 77467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <stdio.h> 77567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 77667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 77767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe int c = getopt_long_only(argc, argv, NULL, NULL, NULL); 77867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return c; 77967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 78067bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 78167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "" "getopt_long_only"; then 78267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe getopt_long_only="yes" 78367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 78467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "getopt_long_only() $getopt_long_only" 78567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 78667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 78767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# inet_aton() probe 78867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeinet_aton="no" 78967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 79067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <sys/socket.h> 79167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <arpa/inet.h> 79267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <stdio.h> 79367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 79467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 79567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe struct in_addr in; 79667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return inet_aton(NULL, &in); 79767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 79867bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 79967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "" "inet_aton"; then 80067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe inet_aton="yes" 80167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 80267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "inet_aton $inet_aton" 80367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 80467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 80567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# socklen_t probe 80667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboesocklen_t="no" 80767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 80867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <string.h> 80967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <netinet/in.h> 81067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 81167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 81267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe socklen_t len = 0; 81367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return len; 81467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 81567bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 81667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "" "socklen_t"; then 81767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe socklen_t="yes" 81867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 81967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "socklen_t $socklen_t" 82067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 82167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe########################################## 82267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# Whether or not __thread is supported for TLS 82367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboetls_thread="no" 82467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboecat > $TMPC << EOF 82567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#include <stdio.h> 82667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboestatic int __thread ret; 82767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeint main(int argc, char **argv) 82867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe{ 82967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe return ret; 83067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe} 83167bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeEOF 83267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif compile_prog "" "" "__thread"; then 83367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe tls_thread="yes" 83467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 83567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "__thread $tls_thread" 83667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 83791f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe########################################## 83891f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe# Whether or not __thread is supported for TLS 83991f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboeif test "$gfio" = "yes" ; then 84091f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe cat > $TMPC << EOF 84191f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe#include <glib.h> 84291f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe#include <cairo.h> 84391f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe#include <gtk/gtk.h> 84491f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboeint main(void) 84591f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe{ 84691f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe gdk_threads_enter(); 84791f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe gtk_main(); 84891f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe gdk_threads_leave(); 84991f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe return 0; 85091f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe} 85191f94d5b88b72c300be4f27ef6630e16af890db6Jens AxboeEOF 85291f94d5b88b72c300be4f27ef6630e16af890db6Jens AxboeGTK_CFLAGS=$(pkg-config --cflags gtk+-2.0 gthread-2.0) 85391f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboeif test "$?" != "0" ; then 85491f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe echo "configure: gtk and gthread not found" 85591f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe exit 1 85691f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboefi 85791f94d5b88b72c300be4f27ef6630e16af890db6Jens AxboeGTK_LIBS=$(pkg-config --libs gtk+-2.0 gthread-2.0) 85891f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboeif test "$?" != "0" ; then 85991f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe echo "configure: gtk and gthread not found" 86091f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe exit 1 86191f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboefi 86291f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboeif compile_prog "$GTK_CFLAGS" "$GTK_LIBS" "gfio"; then 86391f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe gfio="yes" 86491f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe LIBS="$LIBS $GTK_LIBS" 86591f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe CFLAGS="$CFLAGS $GTK_CFLAGS" 86691f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboeelse 86791f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe echo "Please install gtk and gdk libraries" 86891f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe gfio="no" 86991f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboefi 87091f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboefi 87191f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe 87291f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboeecho "gfio $gfio" 87391f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe 87444404c5a7f90aa42c3228b56b6f686f15a50fb29Jens Axboe# Check whether we have getrusage(RUSAGE_THREAD) 87544404c5a7f90aa42c3228b56b6f686f15a50fb29Jens Axboerusage_thread="no" 87644404c5a7f90aa42c3228b56b6f686f15a50fb29Jens Axboecat > $TMPC << EOF 87744404c5a7f90aa42c3228b56b6f686f15a50fb29Jens Axboe#include <sys/time.h> 87844404c5a7f90aa42c3228b56b6f686f15a50fb29Jens Axboe#include <sys/resource.h> 87944404c5a7f90aa42c3228b56b6f686f15a50fb29Jens Axboeint main(int argc, char **argv) 88044404c5a7f90aa42c3228b56b6f686f15a50fb29Jens Axboe{ 88144404c5a7f90aa42c3228b56b6f686f15a50fb29Jens Axboe struct rusage ru; 88244404c5a7f90aa42c3228b56b6f686f15a50fb29Jens Axboe getrusage(RUSAGE_THREAD, &ru); 88344404c5a7f90aa42c3228b56b6f686f15a50fb29Jens Axboe return 0; 88444404c5a7f90aa42c3228b56b6f686f15a50fb29Jens Axboe} 88544404c5a7f90aa42c3228b56b6f686f15a50fb29Jens AxboeEOF 88644404c5a7f90aa42c3228b56b6f686f15a50fb29Jens Axboeif compile_prog "" "" "RUSAGE_THREAD"; then 88744404c5a7f90aa42c3228b56b6f686f15a50fb29Jens Axboe rusage_thread="yes" 88844404c5a7f90aa42c3228b56b6f686f15a50fb29Jens Axboefi 88944404c5a7f90aa42c3228b56b6f686f15a50fb29Jens Axboeecho "RUSAGE_THREAD $rusage_thread" 89044404c5a7f90aa42c3228b56b6f686f15a50fb29Jens Axboe 89167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe############################################################################# 89267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 89367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "# Automatically generated by configure - do not modify" > $config_host_mak 89467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeprintf "# Configured with:" >> $config_host_mak 89567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeprintf " '%s'" "$0" "$@" >> $config_host_mak 89667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho >> $config_host_mak 89767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 89867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$wordsize" = "64" ; then 8994feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_64BIT" 90067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelif test "$wordsize" = "32" ; then 9014feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_32BIT" 90267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelse 90367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe echo "Unknown wordsize!" 90467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe exit 1 90567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 9060dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens Axboeif test "$bigendian" = "yes" ; then 9074feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_BIG_ENDIAN" 9080dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens Axboeelse 9094feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_LITTLE_ENDIAN" 9100dcebdf4a70ef0d8144b8fcba763ae87e7fc74b5Jens Axboefi 91167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$libaio" = "yes" ; then 9124feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_LIBAIO" 91367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 91467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$posix_aio" = "yes" ; then 9154feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_POSIXAIO" 91667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 91767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$posix_aio_fsync" = "yes" ; then 9184feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_POSIXAIO_FSYNC" 91967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 92067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$linux_fallocate" = "yes" ; then 9214feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_LINUX_FALLOCATE" 92267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 92367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$posix_fallocate" = "yes" ; then 9244feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_POSIX_FALLOCATE" 92567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 92667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$fdatasync" = "yes" ; then 9274feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_FDATASYNC" 92867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 92967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$sync_file_range" = "yes" ; then 9304feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_SYNC_FILE_RANGE" 93167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 93267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$sfaa" = "yes" ; then 9334feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_SFAA" 93467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 93567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$libverbs" = "yes" -o "rdmacm" = "yes" ; then 9364feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_RDMA" 93767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 93867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$clock_gettime" = "yes" ; then 9394feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_CLOCK_GETTIME" 94067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 94167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$clock_monotonic" = "yes" ; then 9424feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_CLOCK_MONOTONIC" 94367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 94467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$clock_monotonic_precise" = "yes" ; then 9454feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_CLOCK_MONOTONIC_PRECISE" 94667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 94767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$gettimeofday" = "yes" ; then 9484feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_GETTIMEOFDAY" 94967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 95067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$posix_fadvise" = "yes" ; then 9514feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_POSIX_FADVISE" 95267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 95367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$linux_3arg_affinity" = "yes" ; then 9544feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_3ARG_AFFINITY" 95567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelif test "$linux_2arg_affinity" = "yes" ; then 9564feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_2ARG_AFFINITY" 95767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 95867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$strsep" = "yes" ; then 9594feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_STRSEP" 96067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 96167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$getopt_long_only" = "yes" ; then 9624feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_GETOPT_LONG_ONLY" 96367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 96467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$inet_aton" = "yes" ; then 9654feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_INET_ATON" 96667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 96767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$socklen_t" = "yes" ; then 9684feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_SOCKLEN_T" 96967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 97067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$ext4_me" = "yes" ; then 9714feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_LINUX_EXT4_MOVE_EXTENT" 97267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 97367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$linux_splice" = "yes" ; then 9744feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_LINUX_SPLICE" 97567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 97667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$guasi" = "yes" ; then 9774feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_GUASI" 97867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 97967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$fusion_aw" = "yes" ; then 9804feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_FUSION_AW" 98167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 98267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$libnuma" = "yes" ; then 9834feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_LIBNUMA" 98467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 98567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$solaris_aio" = "yes" ; then 9864feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_SOLARISAIO" 98767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 98867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeif test "$tls_thread" = "yes" ; then 9894feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_TLS_THREAD" 99067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 99144404c5a7f90aa42c3228b56b6f686f15a50fb29Jens Axboeif test "$rusage_thread" = "yes" ; then 9924feafb1e7864b736e1bfe83fe185fbba933b1c60Jens Axboe output_sym "CONFIG_RUSAGE_THREAD" 99367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefi 99491f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboeif test "$gfio" = "yes" ; then 99591f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe echo "CONFIG_GFIO=y" >> $config_host_mak 99691f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboefi 99767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 99867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "LIBS+=$LIBS" >> $config_host_mak 99991f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboeecho "CFLAGS+=$CFLAGS" >> $config_host_mak 100067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeecho "CC=$cc" >> $config_host_mak 1001208e4c8bcd943b356834541c0b4d08710f348edbJens Axboeecho "EXTFLAGS=$EXTFLAGS $CFLAGS" >> $config_host_mak 1002