This is the mail archive of the newlib@sourceware.org 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: readlink and symlink prototypes [PATCH]


Shaun Jackman wrote:
Since readlink and symlink are standard functions (SUSv3 and others) I
would like to see their prototypes provided by default.

As a general rule, could functions defined by SUSv3 be moved
outside the common #if defined(__CYGWIN__) || defined(__rtems__)
line? If so, I'll trickle in patches as I come across them.


Could you explain why you need/want to do this? The reason these prototypes are not outside the #ifdefs is that these functions don't exist in generic newlib. Generic newlib is not fully SUSv3-compliant nor POSIX-compliant nor is it intended to be. X86 linux newlib, for example, which is far more robust, overrides the header files.


-- Jeff J.

Cheers,
Shaun

2005-10-26 Shaun Jackman <sjackman@gmail.com>

	* libc/include/sys/unistd.h (readlink, symlink): Provide these
	prototypes by default.
	* libc/sys/linux/include/unistd.h (readlink): Remove this
	prototype.
	* libc/sys/linux/sys/unistd.h (readlink, symlink): New
	prototypes.

diff -u -r1.55 unistd.h
--- libc/include/sys/unistd.h	23 Feb 2005 17:42:07 -0000	1.55
+++ libc/include/sys/unistd.h	26 Oct 2005 22:06:34 -0000
@@ -211,9 +211,9 @@
 #else /* defined(__rtems__) */
 int     _EXFUN(sync, (void));
 #endif
+#endif
 int     _EXFUN(readlink, (const char *__path, char *__buf, int __buflen));
 int     _EXFUN(symlink, (const char *__name1, const char *__name2));
-#endif

 #define	F_OK	0
 #define	R_OK	4
diff -u -r1.1 unistd.h
--- libc/sys/linux/include/unistd.h	9 Dec 2000 01:20:32 -0000	1.1
+++ libc/sys/linux/include/unistd.h	26 Oct 2005 22:06:35 -0000
@@ -15,6 +15,4 @@
 extern int optind, opterr, optopt;


-int readlink(const char *path, char *buf, size_t bufsiz); - #endif diff -u -r1.5 unistd.h --- libc/sys/linux/sys/unistd.h 7 Dec 2004 18:54:28 -0000 1.5 +++ libc/sys/linux/sys/unistd.h 26 Oct 2005 22:06:35 -0000 @@ -72,6 +72,7 @@ ssize_t _EXFUN(pread, (int __fd, void *__buf, size_t __nbytes, off_t __offset)); ssize_t _EXFUN(pwrite, (int __fd, const void *__buf, size_t __nbytes, off_t __offset)); _READ_WRITE_RETURN_TYPE _EXFUN(read, (int __fd, void *__buf, size_t __nbyte )); +int _EXFUN(readlink, (const char *path, char *buf, size_t bufsiz)); int _EXFUN(rmdir, (const char *__path )); void * _EXFUN(sbrk, (ptrdiff_t __incr)); int _EXFUN(setegid, (gid_t __gid )); @@ -83,6 +84,7 @@ int _EXFUN(setuid, (uid_t __uid )); unsigned _EXFUN(sleep, (unsigned int __seconds )); void _EXFUN(swab, (const void *, void *, ssize_t)); +int _EXFUN(symlink, (const char *oldpath, const char *newpath)); long _EXFUN(sysconf, (int __name )); pid_t _EXFUN(tcgetpgrp, (int __fildes )); int _EXFUN(tcsetpgrp, (int __fildes, pid_t __pgrp_id ));


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