[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: utimensat breakage
From: |
Jim Meyering |
Subject: |
Re: utimensat breakage |
Date: |
Wed, 18 Feb 2009 16:38:01 +0100 |
Jim Meyering <address@hidden> wrote:
> Michael Stone <address@hidden> wrote:
>> It seems that libc6 doesn't have any fallback code in utimensat to
>> handle older kernels that don't provide that interface (leading to
>> "fuction not implemented" messages from touch or other utilities which
>> use the function. This is a runtime error which depends on the kernel
>> version (the regular build tests fail if building on an older kernel,
>> otherwise the tests will work until you run on an older kernel). The
>> attached patch checks the return code in the gl_futimens function and
>> keeps falling through until it finds something that doesn't return
>> ENOSYS.
>
> Thank you.
> At first glance, this looks like right.
> I'll look more closely later today.
>
> If you have any more patches that you'd like to
> see in the next stable release, please send them very soon.
> I plan to make a snapshot today and another Friday.
> Very soon after that I want to release coreutils-7.1.
>
>> #! /bin/sh /usr/share/dpatch/dpatch-run
>> ## 77_utimensat.dpatch by Michael Stone <address@hidden>
>> ##
>> ## All lines beginning with `## DP:' are a description of the patch.
>> ## DP: Work around glibc not handling kernel interface changes well
>>
>> @DPATCH@
>> diff -urNad coreutils-6.12~/lib/utimens.c coreutils-6.12/lib/utimens.c
>> --- coreutils-6.12~/lib/utimens.c 2008-05-29 09:21:57.000000000 -0400
>> +++ coreutils-6.12/lib/utimens.c 2009-02-18 07:00:33.863932176 -0500
When I actually went to look at the latest (in gnulib) source
for that file, I see that this patch no longer applies, and in
fact, that the problem has already been addressed.
commit 93f084065374412df9f0dae283e51e59267928fd
Author: Eric Blake <address@hidden>
Date: Mon Jun 2 15:08:14 2008 -0600
Provide futimens/utimensat fallbacks for older kernels.
* lib/utimens.c (gl_futimens) [HAVE_UTIMENSAT, HAVE_FUTIMENS]:
Provide runtime fallback if kernel lacks support.
Reported by Mike Frysinger.