summary refs log tree commit diff
path: root/misc
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-04-19 16:57:17 +0000
committerUlrich Drepper <drepper@redhat.com>2003-04-19 16:57:17 +0000
commit2c008571c3ad156479307b7e23185ae566b5776a (patch)
treef3bad7f0e95a6d172e6577b7e2d557602e1f446c /misc
parent76a67697c890d292d9f32e88cf24f8a3f74e47b9 (diff)
downloadglibc-2c008571c3ad156479307b7e23185ae566b5776a.tar.gz
glibc-2c008571c3ad156479307b7e23185ae566b5776a.tar.xz
glibc-2c008571c3ad156479307b7e23185ae566b5776a.zip
Update.
2003-04-19  Ulrich Drepper  <drepper@redhat.com>

	* catgets/nl_types.h: Remove __THROW marker from cancellation points.
	* dirent/dirent.h: Likewise.
	* dlfcn/dlfcn.h: Likewise.
	* grp/grp.h: Likewise.
	* iconv/iconv.h: Likewise.
	* io/fcntl.h: Likewise.
	* io/ftw.h: Likewise.
	* libio/stdio.h: Likewise.
	* misc/sys/mman.h: Likewise.
	* misc/sys/select.h: Likewise.
	* misc/sys/syslog.h: Likewise.
	* misc/sys/uio.h: Likewise.
	* posix/spawn.h: Likewise.
	* posix/unistd.h: Likewise.
	* posix/sys/wait.h: Likewise.
	* pwd/pwd.h: Likewise.
	* resolv/netdb.h: Likewise.
	* rt/aio.h: Likewise.
	* shadow/shadow.h: Likewise.
	* signal/signal.h: Likewise.
	* socket/sys/socket.h: Likewise.
	* stdlib/stdlib.h: Likewise.
	* streams/stropts.h: Likewise.
	* string/string.h: Likewise.
	* sysdeps/gnu/utmpx.h: Likewise.
	* sysvipc/sys/msg.h: Likewise.
	* termios/termios.h: Likewise.
	* time/time.h: Likewise.
	* wcsmbs/wchar.h: Likewise.
	* iconv/gconv_cache.c: Include <not-cancel.h> and use non-cancelable
	functions.
	* misc/daemon.c: Likewise.
	* sysdeps/generic/backtracesymsfd.c: Likewise.
	* sysdeps/generic/check_fds.c: Likewise.
	* sysdeps/unix/sysv/linux/gethostid.c: Likewise.
	* sysdeps/unix/sysv/linux/not-cancel.h: New file.
	* sysdeps/generic/not-cancel.h: New file.
	* csu/Makefile (distribute): Add not-cancel.h.
	* sysdeps/unix/sysv/linux/fatal-prepare.h: New file.
	* sysdeps/unix/sysv/linux/Makefile: Define FATAL_PREPARE_INCLUDE
	for assert.c and assert-perr.c to include <fatal-prepare.h>.
	* sysdeps/unix/sysv/linux/Dist: Add fatal-prepare.h.

	* sysdeps/posix/remove.c (remove): Rewrite.  No need to restore
	errno and unlink first.

	* io/ftw.c (ftw_dir): In all places assume fchdir is available.

2003-04-18  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/libc_fatal.c (__libc_fatal): Use
	INTERNAL_SYSCALL instead of INLINE_SYSCALL.
Diffstat (limited to 'misc')
-rw-r--r--misc/daemon.c7
-rw-r--r--misc/sys/mman.h7
-rw-r--r--misc/sys/select.h16
-rw-r--r--misc/sys/syslog.h29
-rw-r--r--misc/sys/uio.h18
5 files changed, 53 insertions, 24 deletions
diff --git a/misc/daemon.c b/misc/daemon.c
index 8cffdde1ce..bc93956e85 100644
--- a/misc/daemon.c
+++ b/misc/daemon.c
@@ -31,12 +31,14 @@
 static char sccsid[] = "@(#)daemon.c	8.1 (Berkeley) 6/4/93";
 #endif /* LIBC_SCCS and not lint */
 
+#include <errno.h>
 #include <fcntl.h>
 #include <paths.h>
 #include <unistd.h>
 #include <sys/stat.h>
 
 #include <device-nrs.h>
+#include <not-cancel.h>
 
 int
 daemon(nochdir, noclose)
@@ -59,7 +61,8 @@ daemon(nochdir, noclose)
 	if (!nochdir)
 		(void)__chdir("/");
 
-	if (!noclose && (fd = __open(_PATH_DEVNULL, O_RDWR, 0)) != -1) {
+	if (!noclose
+	    && (fd = open_not_cancel(_PATH_DEVNULL, O_RDWR, 0)) != -1) {
 		struct stat64 st;
 
 		if (__builtin_expect (__fxstat64 (_STAT_VER, fd, &st), 0) == 0
@@ -74,7 +77,7 @@ daemon(nochdir, noclose)
 			if (fd > 2)
 				(void)__close (fd);
 		} else {
-			(void)__close (fd);
+			close_not_cancel_no_status (fd);
 			return -1;
 		}
 	}
diff --git a/misc/sys/mman.h b/misc/sys/mman.h
index 8ca6539e19..5e37278df3 100644
--- a/misc/sys/mman.h
+++ b/misc/sys/mman.h
@@ -83,8 +83,11 @@ extern int mprotect (void *__addr, size_t __len, int __prot) __THROW;
 
 /* Synchronize the region starting at ADDR and extending LEN bytes with the
    file it maps.  Filesystem operations on a file being mapped are
-   unpredictable before this is done.  Flags are from the MS_* set.  */
-extern int msync (void *__addr, size_t __len, int __flags) __THROW;
+   unpredictable before this is done.  Flags are from the MS_* set.
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
+extern int msync (void *__addr, size_t __len, int __flags);
 
 #ifdef __USE_BSD
 /* Advise the system about particular usage patterns the program follows
diff --git a/misc/sys/select.h b/misc/sys/select.h
index dc58ec6c2d..2a408433ec 100644
--- a/misc/sys/select.h
+++ b/misc/sys/select.h
@@ -1,5 +1,5 @@
 /* `fd_set' type and related macros, and `select'/`pselect' declarations.
-   Copyright (C) 1996,97,98,99,2000,01,02 Free Software Foundation, Inc.
+   Copyright (C) 1996,97,98,99,2000,01,02,2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -102,21 +102,27 @@ __BEGIN_DECLS
    readiness, in WRITEFDS (if not NULL) for write readiness, and in EXCEPTFDS
    (if not NULL) for exceptional conditions.  If TIMEOUT is not NULL, time out
    after waiting the interval specified therein.  Returns the number of ready
-   descriptors, or -1 for errors.  */
+   descriptors, or -1 for errors.
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
 extern int select (int __nfds, fd_set *__restrict __readfds,
 		   fd_set *__restrict __writefds,
 		   fd_set *__restrict __exceptfds,
-		   struct timeval *__restrict __timeout) __THROW;
+		   struct timeval *__restrict __timeout);
 
 #ifdef __USE_XOPEN2K
 /* Same as above only that the TIMEOUT value is given with higher
    resolution and a sigmask which is been set temporarily.  This version
-   should be used.  */
+   should be used.
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
 extern int pselect (int __nfds, fd_set *__restrict __readfds,
 		    fd_set *__restrict __writefds,
 		    fd_set *__restrict __exceptfds,
 		    const struct timespec *__restrict __timeout,
-		    const __sigset_t *__restrict __sigmask) __THROW;
+		    const __sigset_t *__restrict __sigmask);
 #endif
 
 __END_DECLS
diff --git a/misc/sys/syslog.h b/misc/sys/syslog.h
index 940ee2dec3..8d501cfbd3 100644
--- a/misc/sys/syslog.h
+++ b/misc/sys/syslog.h
@@ -168,22 +168,35 @@ CODE facilitynames[] =
 
 __BEGIN_DECLS
 
-/* Close desriptor used to write to system logger.  */
-extern void closelog (void) __THROW;
+/* Close desriptor used to write to system logger.
 
-/* Open connection to system logger.  */
-extern void openlog (__const char *__ident, int __option, int __facility)
-     __THROW;
+   This function is a possible cancellation point and therefore not
+   marked with __THROW.  */
+extern void closelog (void);
+
+/* Open connection to system logger.
+
+   This function is a possible cancellation point and therefore not
+   marked with __THROW.  */
+extern void openlog (__const char *__ident, int __option, int __facility);
 
 /* Set the log mask level.  */
 extern int setlogmask (int __mask) __THROW;
 
-/* Generate a log message using FMT string and option arguments.  */
-extern void syslog (int __pri, __const char *__fmt, ...) __THROW
+/* Generate a log message using FMT string and option arguments.
+
+   This function is a possible cancellation point and therefore not
+   marked with __THROW.  */
+extern void syslog (int __pri, __const char *__fmt, ...)
      __attribute__ ((__format__(__printf__, 2, 3)));
 
 #ifdef __USE_BSD
-/* Generate a log message using FMT and using arguments pointed to by AP.  */
+/* Generate a log message using FMT and using arguments pointed to by AP.
+
+   This function is not part of POSIX and therefore no official
+   cancellation point.  But due to similarity with an POSIX interface
+   or due to the implementation it is a cancellation point and
+   therefore not marked with __THROW.  */
 extern void vsyslog (int __pri, __const char *__fmt, __gnuc_va_list __ap)
      __THROW __attribute__ ((__format__(__printf__, 2, 0)));
 #endif
diff --git a/misc/sys/uio.h b/misc/sys/uio.h
index 4b31380880..53add9f2e2 100644
--- a/misc/sys/uio.h
+++ b/misc/sys/uio.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 96, 97, 98, 99 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 96, 97, 98, 99, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -33,17 +33,21 @@ __BEGIN_DECLS
    buffers described by VECTOR, which is a vector of COUNT `struct iovec's.
    The buffers are filled in the order specified.
    Operates just like `read' (see <unistd.h>) except that data are
-   put in VECTOR instead of a contiguous buffer.  */
-extern ssize_t readv (int __fd, __const struct iovec *__vector, int __count)
-     __THROW;
+   put in VECTOR instead of a contiguous buffer.
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
+extern ssize_t readv (int __fd, __const struct iovec *__vector, int __count);
 
 /* Write data pointed by the buffers described by VECTOR, which
    is a vector of COUNT `struct iovec's, to file descriptor FD.
    The data is written in the order specified.
    Operates just like `write' (see <unistd.h>) except that the data
-   are taken from VECTOR instead of a contiguous buffer.  */
-extern ssize_t writev (int __fd, __const struct iovec *__vector, int __count)
-     __THROW;
+   are taken from VECTOR instead of a contiguous buffer.
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
+extern ssize_t writev (int __fd, __const struct iovec *__vector, int __count);
 
 __END_DECLS