- fix up potential test failures when building in certain slightly quirky

environments (part of bz#442352)
This commit is contained in:
Jarod Wilson 2008-10-06 20:29:30 +00:00
parent 9cd65b9a55
commit e1155495fa
2 changed files with 26 additions and 18 deletions

View File

@ -1,16 +1,17 @@
diff -urNp coreutils-6.12-orig/lib/utimens.c coreutils-6.12/lib/utimens.c
--- coreutils-6.12-orig/lib/utimens.c 2008-06-06 12:49:08.000000000 +0200
+++ coreutils-6.12/lib/utimens.c 2008-06-06 12:52:24.000000000 +0200
@@ -103,6 +103,17 @@ gl_futimens (int fd ATTRIBUTE_UNUSED,
diff -Naurp coreutils-6.12.orig/lib/utimens.c coreutils-6.12/lib/utimens.c
--- coreutils-6.12.orig/lib/utimens.c 2008-10-06 16:21:11.000000000 -0400
+++ coreutils-6.12/lib/utimens.c 2008-10-06 16:26:33.000000000 -0400
@@ -103,6 +103,18 @@ gl_futimens (int fd ATTRIBUTE_UNUSED,
if (fd < 0)
{
int result = utimensat (AT_FDCWD, file, timespec, 0);
+# ifdef __linux__
+ /* Work around what might be a kernel bug:
+ /* Work around xen kernel bug:
+ http://bugzilla.redhat.com/442352
+ http://bugzilla.redhat.com/449910
+ It appears that utimensat can mistakenly return 280 rather
+ than 0 to indicate success.
+ When running on a sufficiently old (pre-RHEL5.3) x86_64 xen
+ kernel, utimensat can mistakenly return its syscall number (280 on
+ x86_64) rather than the proper ENOSYS code, due to a xen bug.
+ FIXME: remove in 2010 or whenever the offending kernels
+ are no longer in common use. */
+ if (0 < result)
@ -19,16 +20,17 @@ diff -urNp coreutils-6.12-orig/lib/utimens.c coreutils-6.12/lib/utimens.c
if (result == 0 || errno != ENOSYS)
return result;
}
@@ -110,6 +121,17 @@ gl_futimens (int fd ATTRIBUTE_UNUSED,
@@ -110,6 +122,18 @@ gl_futimens (int fd ATTRIBUTE_UNUSED,
#if HAVE_FUTIMENS
{
int result = futimens (fd, timespec);
+# ifdef __linux__
+ /* Work around what might be a kernel bug:
+ /* Work around xen kernel bug:
+ http://bugzilla.redhat.com/442352
+ http://bugzilla.redhat.com/449910
+ It appears that utimens can mistakenly return 280 rather
+ than 0 to indicate success.
+ When running on a sufficiently old (pre-RHEL5.3) x86_64 xen
+ kernel, utimensat can mistakenly return its syscall number (280 on
+ x86_64) rather than the proper ENOSYS code, due to a xen bug.
+ FIXME: remove in 2010 or whenever the offending kernels
+ are no longer in common use. */
+ if (0 < result)
@ -37,9 +39,9 @@ diff -urNp coreutils-6.12-orig/lib/utimens.c coreutils-6.12/lib/utimens.c
if (result == 0 || errno != ENOSYS)
return result;
}
diff -urNp coreutils-6.12-orig/tests/Makefile.am coreutils-6.12/tests/Makefile.am
--- coreutils-6.12-orig/tests/Makefile.am 2008-06-05 10:52:49.000000000 +0200
+++ coreutils-6.12/tests/Makefile.am 2008-06-05 13:23:02.000000000 +0200
diff -Naurp coreutils-6.12.orig/tests/Makefile.am coreutils-6.12/tests/Makefile.am
--- coreutils-6.12.orig/tests/Makefile.am 2008-10-06 16:21:11.000000000 -0400
+++ coreutils-6.12/tests/Makefile.am 2008-10-06 16:22:04.000000000 -0400
@@ -215,6 +215,7 @@ TESTS = \
misc/tty-eof \
misc/unexpand \
@ -48,9 +50,9 @@ diff -urNp coreutils-6.12-orig/tests/Makefile.am coreutils-6.12/tests/Makefile.a
chmod/c-option \
chmod/equal-x \
chmod/equals \
diff -urNp coreutils-6.12-orig/tests/misc/utimensat-touchcp coreutils-6.12/tests/misc/utimensat-touchcp
--- coreutils-6.12-orig/tests/misc/utimensat-touchcp 1970-01-01 01:00:00.000000000 +0100
+++ coreutils-6.12/tests/misc/utimensat-touchcp 2008-06-05 13:22:01.000000000 +0200
diff -Naurp coreutils-6.12.orig/tests/misc/utimensat-touchcp coreutils-6.12/tests/misc/utimensat-touchcp
--- coreutils-6.12.orig/tests/misc/utimensat-touchcp 1969-12-31 19:00:00.000000000 -0500
+++ coreutils-6.12/tests/misc/utimensat-touchcp 2008-10-06 16:22:04.000000000 -0400
@@ -0,0 +1,33 @@
+#!/bin/sh
+# Make sure touch -r and cp -pr works without hanging.

View File

@ -1,7 +1,7 @@
Summary: The GNU core utilities: a set of tools commonly used in shell scripts
Name: coreutils
Version: 6.12
Release: 11%{?dist}
Release: 12%{?dist}
License: GPLv3+
Group: System Environment/Base
Url: http://www.gnu.org/software/coreutils/
@ -23,6 +23,7 @@ Patch2: coreutils-authors.patch
Patch3: coreutils-who_texinfo.patch
#Patch4: coreutils-6.12-date_timerelsnumber.patch
Patch5: coreutils-6.12-seqdecimalutf8.patch
Patch6: coreutils-6.12-catch-known-testsuite-failures.patch
# Our patches
Patch100: coreutils-6.10-configuration.patch
@ -115,6 +116,7 @@ cd %name-%version
%patch3 -p1 -b .whotexinfo
#%patch4 -p1 -b .getdate
%patch5 -p1 -b .sequtf8
%patch6 -p1 -b .tests
# Our patches
%patch100 -p1 -b .configure
@ -333,6 +335,10 @@ fi
/sbin/runuser
%changelog
* Mon Oct 06 2008 Jarod Wilson <jarod@redhat.com> - 6.12-12
- fix up potential test failures when building in certain
slightly quirky environments (part of bz#442352)
* Mon Oct 06 2008 Ondrej Vasik <ovasik@redhat.com> - 6.12-11
- added requires for libattr (#465569)