Work around limit in writev in 2.6.38+ kernels

This commit is contained in:
Ulrich Drepper 2011-06-24 14:59:17 -04:00
parent 0b1cbaaef5
commit d5495a116c
4 changed files with 17 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2011-06-24 Ulrich Drepper <drepper@gmail.com>
[BZ #12874]
* sysdeps/unix/sysv/linux/Makefile (CFLAGS-tst-writev.c): Define.
* sysdeps/wordsize-64/tst-writev.c: Work around problem with 2.6.38+
kernels which artificially limit size of requests.
2011-06-22 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Add

2
NEWS
View File

@ -9,7 +9,7 @@ Version 2.15
* The following bugs are resolved with this release:
12885, 12907
12874, 12885, 12907
* New program pldd to list loaded object of a process
Implemented by Ulrich Drepper.

View File

@ -22,6 +22,7 @@ sysdep_routines += sysctl clone llseek umount umount2 readahead \
eventfd eventfd_read eventfd_write prlimit
CFLAGS-gethostid.c = -fexceptions
CFLAGS-tst-writev.c += -DARTIFICIAL_LIMIT=0x7ffff000
sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \
sys/klog.h sys/kdaemon.h \

View File

@ -96,8 +96,14 @@ do_test (void)
if (ret != (ssize_t) EXPECTED)
{
printf ("writev() return value: %zd != EXPECTED: %zd\n", ret, EXPECTED);
return 1;
#ifdef ARTIFICIAL_LIMIT
if (ret != (ssize_t) ARTIFICIAL_LIMIT)
#endif
{
printf ("writev() return value: %zd != EXPECTED: %zd\n",
ret, EXPECTED);
return 1;
}
}
return 0;