Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2002-09-20 01:28:52 +0400
committerJeff Johnston <jjohnstn@redhat.com>2002-09-20 01:28:52 +0400
commit50558bf3bdb5e2fc2454f38316af1f06f82f9a5d (patch)
tree06876f77aa28773abc0dfae1f21adf94fa5f3d26 /newlib/libc/syscalls
parent0688e43db7cdf256bd7f38c9b0524cf71032ecf9 (diff)
2002-09-19 Jeff Johnston <jjohnstn@redhat.com>
* libc/posix/opendir.c (opendir): Change code to check for HAVE_FCNTL before calling fcntl. * libc/search/hash.c (hash_open): Ditto. * libc/search/hash_page.c (open_tmp): Ditto. * libc/reent/Makefile.am: Add fcntlr.c. * libc/reent/Makefile.in: Regenerated. * libc/reent/fcntlr.c: New file. * libc/stdio/fdopen.c (_fdopen_r): Change to call _fcntl_r instead of _fcntl when HAVE_FCNTL flag is set. * libc/syscalls/sysfcntl.c (fcntl): Check for HAVE_FCNTL flag to see if _fcntl or _fcntl_r should be called. If flag is not set, default to ENOSYS stub.
Diffstat (limited to 'newlib/libc/syscalls')
-rw-r--r--newlib/libc/syscalls/sysfcntl.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/newlib/libc/syscalls/sysfcntl.c b/newlib/libc/syscalls/sysfcntl.c
index 23e1d837a..4d1c57cc1 100644
--- a/newlib/libc/syscalls/sysfcntl.c
+++ b/newlib/libc/syscalls/sysfcntl.c
@@ -2,6 +2,7 @@
/* only called from stdio/fdopen.c, so arg can be int. */
#include <reent.h>
+#include <errno.h>
int
fcntl (fd, flag, arg)
@@ -9,9 +10,14 @@ fcntl (fd, flag, arg)
int flag;
int arg;
{
-#ifdef REENTRANT_SYSCALLS_PROVIDED
+#ifdef HAVE_FCNTL
+# ifdef REENTRANT_SYSCALLS_PROVIDED
return _fcntl_r (_REENT, fd, flag, arg);
-#else
+# else
return _fcntl (fd, flag, arg);
-#endif
+# endif
+#else /* !HAVE_FCNTL */
+ errno = ENOSYS;
+ return -1;
+#endif /& !HAVE_FCNTL */
}