diff options
author | Ulrich Drepper <drepper@gmail.com> | 2011-06-24 14:59:17 -0400 |
---|---|---|
committer | Ulrich Drepper <drepper@gmail.com> | 2011-06-24 14:59:17 -0400 |
commit | d5495a116c6271c0ae8f6955b64b7b010b1b341a (patch) | |
tree | 1c7f962b0521b487971d88e9b315a1391518f7f4 | |
parent | 0b1cbaaef5ccc21baf2c35d4698fb28e82eab385 (diff) | |
download | glibc-d5495a116c6271c0ae8f6955b64b7b010b1b341a.tar.gz glibc-d5495a116c6271c0ae8f6955b64b7b010b1b341a.tar.xz glibc-d5495a116c6271c0ae8f6955b64b7b010b1b341a.zip |
Work around limit in writev in 2.6.38+ kernels
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/Makefile | 1 | ||||
-rw-r--r-- | sysdeps/wordsize-64/tst-writev.c | 10 |
4 files changed, 17 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog index 097ad2094c..8bf8eebb8f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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 diff --git a/NEWS b/NEWS index edb356d19f..dd280043b9 100644 --- a/NEWS +++ b/NEWS @@ -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. diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index 05834e3261..ebb3f5d852 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -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 \ diff --git a/sysdeps/wordsize-64/tst-writev.c b/sysdeps/wordsize-64/tst-writev.c index 6e4788612c..015ad468cd 100644 --- a/sysdeps/wordsize-64/tst-writev.c +++ b/sysdeps/wordsize-64/tst-writev.c @@ -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; |