bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: new snapshot available: coreutils-7.6.63-addb6


From: Pádraig Brady
Subject: Re: new snapshot available: coreutils-7.6.63-addb6
Date: Tue, 06 Oct 2009 10:19:27 +0100
User-agent: Thunderbird 2.0.0.6 (X11/20071008)

Jim Meyering wrote:
> Pádraig Brady wrote:
> 
>> Jim Meyering wrote:
>>> Eric Blake wrote:
>>>> According to Pádraig Brady on 10/5/2009 3:53 PM:
>>>>>>>> This is a new test, but FC5 is soooo old,
>>>>>>>> that I'm not sure it's worth worrying about.
>>>>>>> March 2006?
>>>>>> The failure is probably a function of the kernel.
>>>>>> Which is it?
>>>>> In summary this is what fails:
>>>>>
>>>>> $ touch a
>>>>> $ ln -s a symlink
>>>>> $ ln -L symlink hardlink
>>>>> ln: creating hard link `hardlink' => `symlink': Invalid argument
>>>>>
>>>>> `man linkat` says that AT_SYMLINK_FOLLOW is only supported since 2.6.18
>>>>> and my FC5 system is 2.6.17
>>>> This should fix it.  I don't have access to FC5, but I tested the new code
>>>> path by priming the cache (gl_cv_func_linkat_follow=runtime ./configure)
>>>> along with a temporary setting of have_follow_really=-1 in linkat.c.  I
>>>> also verified that the replacement is not picked up on cygwin 1.7, where
>>>> AT_SYMLINK_FOLLOW was implemented at the same time as linkat.
>>>>
>>>> The patch copies from areadlink.c, as well as link_follow earlier in
>>>> linkat.c, to create two new fd-relative helpers.  For now, I didn't see
>>>> any reason to expose them, but areadlinkat may someday be worth making
>>>> into a full-blown module.
>>> Wow, that was quick.  Thanks.
>>> I should have read this first.
>>>
>>> I was just reviewing the changes in gnulib and
>>> see a few that should be included in the imminent coreutils
>>> beta release, so will probably take this one, too.
>> Needs a couple of tweaks..
>>
>> This needs to be added to linkat.c
>> (seems like it should be refactored somewhere?)
>>
>> #ifndef SIZE_MAX
>> # define SIZE_MAX ((size_t) -1)
>> #endif
>> #ifndef SSIZE_MAX
>> # define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2))
>> #endif
> 
> This should do it:
> 
>>From 6f6420cc9705dcfa545a28c674fddf5703e72c86 Mon Sep 17 00:00:00 2001
> From: Jim Meyering <address@hidden>
> Date: Tue, 6 Oct 2009 11:11:39 +0200
> Subject: [PATCH] linkat: avoid compilation failure
> 
> * lib/linkat.c: Include <stdint.h> for use of SIZE_MAX.

That works thanks.

I suppose these should include stdint.h also?

areadlink.c:# define SIZE_MAX ((size_t) -1)
areadlink-with-size.c:# define SIZE_MAX ((size_t) -1)
backupfile.c:# define SIZE_MAX ((size_t) -1)
fnmatch.c:# define SIZE_MAX ((size_t) -1)
quotearg.c:# define SIZE_MAX ((size_t) -1)
striconv.c:# define SIZE_MAX ((size_t) -1)

While these already include stdint.h so should probably not redefine

fts.c:# define SIZE_MAX ((size_t) -1)
getdelim.c:# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2))
getndelim2.c:# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2))

cheers,
Pádraig.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]