This is the mail archive of the mailing list for the newlib project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: No prototype for readdir_r


A simple patch to add readir_r() prototypes to
all dirent.h files and __restrict to readdir_r.c

OK to commit or did I miss something?


2013-11-20  Joel Sherrill <>

	* newlib/libc/posix/readdir_r.c: Add restrict keyword.
	* newlib/libc/machine/spu/sys/dirent.h,
	newlib/libc/sys/linux/sys/dirent.h, newlib/libc/sys/rtems/sys/dirent.h,
	newlib/libc/sys/sparc64/sys/dirent.h, newlib/libc/sys/sun4/sys/dirent.h,
	newlib/libc/sys/sysvi386/sys/dirent.h: Add readdir_r() prototype.

On 11/18/2013 6:15 AM, Corinna Vinschen wrote:
> On Nov 15 13:45, Joel Sherrill wrote:
>> On 11/15/2013 1:41 PM, Craig Howland wrote:
>>> On 11/15/2013 01:49 PM, Joel Sherrill wrote:
>>>> Hi
>>>> I noticed that readdir_r() does not have a prototype.
>>>> It should be in dirent.h. I am happy to add it to
>>>> the RTEMS dirent.h but there are other versions of
>>>> this file and
>>>> ./libc/include/sys/dirent.h
>>>> ./libc/include/dirent.h
>>>> ./libc/machine/spu/sys/dirent.h
>>>> ./libc/sys/rtems/sys/dirent.h
>>>> ./libc/sys/decstation/sys/dirent.h
>>>> ./libc/sys/sun4/sys/dirent.h
>>>> ./libc/sys/linux/bits/dirent.h
>>>> ./libc/sys/linux/sys/dirent.h
>>>> ./libc/sys/sparc64/sys/dirent.h
>>>> ./libc/sys/sysvi386/sys/dirent.h
>>>> I can drop the prototype in those at the same time.
>>>> And ... Linux man page shows these guards. What should
>>>> they be on newlib?
>>>>      _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _BSD_SOURCE ||
>>>       It probably is not worth bothering with a guard.
>>>       dirent.h is not in the C standard, so there is no gate needed based on 
>>> it.  (Someone could say that with your sample gate that it would be skipped with 
>>> STRICT_ANSI, but from that point of view, dirent.h should not even be included.)
>>>       POSIX says is was added in issue 2, which is so ancient that it seems 
>>> unreasonable to add something now to avoid it for someone trying to use issue 
>>> 1.  (I think that the guard would probably be _POSIX_C_SOURCE >= 199209 to be 
>>> for issue 2, assuming that sys/cdefs.h has been included before the check.)  I 
>>> don't know why GLIBC's test is for 1, instead of 2.
>> So you would lean to just adding it to every dirent.h
>> without a guard? If so, that's really easy. :)
> I agree with Craig.  In theory there's no good reason to omit
> prototypes which are standard for a long time anyway.
> Corinna

Joel Sherrill, Ph.D.             Director of Research & Development        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
Support Available                (256) 722-9985

Attachment: readdir_r.diff
Description: Text document

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]