441ede378e
try to use writev(2) in a non-blocking mode, especially on sockets. Not only this makes handling of EAGAIN rather weird, but in the case of sockets makes your code subject of a ENOBUFS, which is absolutely unclear how to handle properly. *sigh* Bump PORTREVISION.
117 lines
2.8 KiB
Text
117 lines
2.8 KiB
Text
|
|
$FreeBSD$
|
|
|
|
--- configure 2001/10/27 12:43:19 1.1
|
|
+++ configure 2001/10/27 12:43:58
|
|
@@ -5747,9 +5747,9 @@
|
|
rm -f conf.glibtest
|
|
|
|
|
|
-GMODULE_CFLAGS=`glib-config --cflags gmodule`
|
|
+GMODULE_CFLAGS=`$GLIB_CONFIG --cflags gmodule`
|
|
|
|
-GMODULE_LIBS=`glib-config --libs gmodule`
|
|
+GMODULE_LIBS=`$GLIB_CONFIG --libs gmodule`
|
|
|
|
|
|
for ac_prog in 'bison -y' byacc
|
|
@@ -7273,57 +7273,47 @@
|
|
fi
|
|
|
|
|
|
+echo $ac_n "checking how many vectors writev is capable to handle""... $ac_c" 1>&6
|
|
+echo "configure:7278: checking how many vectors writev is capable to handle" >&5
|
|
if test "$cross_compiling" = yes; then
|
|
- cat >> confdefs.h <<\EOF
|
|
-#define HAVE_LIMITED_WRITEV 1
|
|
-EOF
|
|
-
|
|
+ MAXIOV=16
|
|
else
|
|
cat > conftest.$ac_ext <<EOF
|
|
-#line 7284 "configure"
|
|
+#line 7283 "configure"
|
|
#include "confdefs.h"
|
|
|
|
-#include <fcntl.h>
|
|
+#include <sys/types.h>
|
|
#include <sys/uio.h>
|
|
-#define NIOVECS 50
|
|
-int main(int argc, char *argv[])
|
|
+#include <fcntl.h>
|
|
+#include <stdio.h>
|
|
+int main()
|
|
{
|
|
- char dumbuf[20] = "\n";
|
|
- struct iovec iovecs[NIOVECS];
|
|
- int i,fd;
|
|
-
|
|
- for(i = 0; i < NIOVECS; i++) {
|
|
- iovecs[i].iov_base = dumbuf;
|
|
- iovecs[i].iov_len = 1;
|
|
- }
|
|
-
|
|
- fd=open("/dev/null", O_WRONLY);
|
|
- if(fd==-1)
|
|
- return(1);
|
|
-
|
|
- if(writev(fd, iovecs, NIOVECS) < 0)
|
|
- return 1;
|
|
-
|
|
+ FILE *f;
|
|
+ int fd, i;
|
|
+ static struct iovec iovecs[4097];
|
|
+ if ((f = fopen("conftestval", "w")) == NULL || \
|
|
+ (fd = open("/dev/null", O_WRONLY)) < 0)
|
|
+ exit(1);
|
|
+ for (i = 1; i < 4098 && writev(fd, iovecs, i) >= 0; i++);
|
|
+ fprintf(f, "%d\n", i - 1);
|
|
+ fclose(f);
|
|
close(fd);
|
|
- return 0;
|
|
+ exit(0);
|
|
}
|
|
|
|
EOF
|
|
-if { (eval echo configure:7313: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
|
+if { (eval echo configure:7306: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
|
then
|
|
- :
|
|
+ MAXIOV=`cat conftestval`
|
|
else
|
|
echo "configure: failed program was:" >&5
|
|
cat conftest.$ac_ext >&5
|
|
rm -fr conftest*
|
|
- cat >> confdefs.h <<\EOF
|
|
-#define HAVE_LIMITED_WRITEV 1
|
|
-EOF
|
|
-
|
|
+ MAXIOV=16
|
|
fi
|
|
rm -fr conftest*
|
|
fi
|
|
-
|
|
+echo "$ac_t""$MAXIOV" 1>&6
|
|
|
|
|
|
#######################
|
|
@@ -8260,7 +8250,7 @@
|
|
s%@LIB_WRAP@%$LIB_WRAP%g
|
|
s%@HAVE_HOSTS_ACCESS_TRUE@%$HAVE_HOSTS_ACCESS_TRUE%g
|
|
s%@HAVE_HOSTS_ACCESS_FALSE@%$HAVE_HOSTS_ACCESS_FALSE%g
|
|
-s%@HAVE_LIMITED_WRITEV@%$HAVE_LIMITED_WRITEV%g
|
|
+s%@MAXIOV@%$MAXIOV%g
|
|
s%@subdirs@%$subdirs%g
|
|
s%@pkglibdir@%$pkglibdir%g
|
|
|
|
@@ -8584,10 +8574,6 @@
|
|
*) # Relative path.
|
|
ac_sub_cache_file="$ac_dots$cache_file" ;;
|
|
esac
|
|
- case "$ac_given_INSTALL" in
|
|
- [/$]*) INSTALL="$ac_given_INSTALL" ;;
|
|
- *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
|
|
- esac
|
|
|
|
echo "running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir"
|
|
# The eval makes quoting arguments work.
|