From 2c008571c3ad156479307b7e23185ae566b5776a Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 19 Apr 2003 16:57:17 +0000 Subject: Update. 2003-04-19 Ulrich Drepper * 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 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 . * 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 * sysdeps/unix/sysv/linux/libc_fatal.c (__libc_fatal): Use INTERNAL_SYSCALL instead of INLINE_SYSCALL. --- io/fcntl.h | 35 +++++++++++++++++++++-------------- io/ftw.c | 13 +------------ io/ftw.h | 25 +++++++++++++++---------- 3 files changed, 37 insertions(+), 36 deletions(-) (limited to 'io') diff --git a/io/fcntl.h b/io/fcntl.h index 951fd80..8131c24 100644 --- a/io/fcntl.h +++ b/io/fcntl.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,92,94,95,96,97,98,99,2000,2001 Free Software Foundation, Inc. +/* Copyright (C) 1991,1992,1994-2001,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 @@ -56,41 +56,48 @@ __BEGIN_DECLS #endif /* XPG */ /* Do the file control operation described by CMD on FD. - The remaining arguments are interpreted depending on CMD. */ -extern int fcntl (int __fd, int __cmd, ...) __THROW; + The remaining arguments are interpreted depending on CMD. + + This function is a cancellation point and therefore not marked with + __THROW. */ +extern int fcntl (int __fd, int __cmd, ...); /* Open FILE and return a new file descriptor for it, or -1 on error. OFLAG determines the type of access used. If O_CREAT is on OFLAG, - the third argument is taken as a `mode_t', the mode of the created file. */ + the third argument is taken as a `mode_t', the mode of the created file. + + This function is a cancellation point and therefore not marked with + __THROW. */ #ifndef __USE_FILE_OFFSET64 -extern int open (__const char *__file, int __oflag, ...) __THROW; +extern int open (__const char *__file, int __oflag, ...); #else # ifdef __REDIRECT -extern int __REDIRECT (open, (__const char *__file, int __oflag, ...) __THROW, - open64); +extern int __REDIRECT (open, (__const char *__file, int __oflag, ...), open64); # else # define open open64 # endif #endif #ifdef __USE_LARGEFILE64 -extern int open64 (__const char *__file, int __oflag, ...) __THROW; +extern int open64 (__const char *__file, int __oflag, ...); #endif -/* Create and open FILE, with mode MODE. - This takes an `int' MODE argument because that is - what `mode_t' will be widened to. */ +/* Create and open FILE, with mode MODE. This takes an `int' MODE + argument because that is what `mode_t' will be widened to. + + This function is a cancellation point and therefore not marked with + __THROW. */ #ifndef __USE_FILE_OFFSET64 -extern int creat (__const char *__file, __mode_t __mode) __THROW; +extern int creat (__const char *__file, __mode_t __mode); #else # ifdef __REDIRECT -extern int __REDIRECT (creat, (__const char *__file, __mode_t __mode) __THROW, +extern int __REDIRECT (creat, (__const char *__file, __mode_t __mode), creat64); # else # define creat creat64 # endif #endif #ifdef __USE_LARGEFILE64 -extern int creat64 (__const char *__file, __mode_t __mode) __THROW; +extern int creat64 (__const char *__file, __mode_t __mode); #endif #if !defined F_LOCK && (defined __USE_MISC || (defined __USE_XOPEN_EXTENDED \ diff --git a/io/ftw.c b/io/ftw.c index 3d2d940..64cab00 100644 --- a/io/ftw.c +++ b/io/ftw.c @@ -482,17 +482,6 @@ ftw_dir (struct ftw_data *data, struct STAT *st) { if (__fchdir (dirfd (dir.stream)) < 0) { - if (errno == ENOSYS) - { - if (__chdir (data->dirbuf) < 0) - result = -1; - } - else - result = -1; - } - - if (result != 0) - { int save_err = errno; __closedir (dir.stream); __set_errno (save_err); @@ -501,7 +490,7 @@ ftw_dir (struct ftw_data *data, struct STAT *st) data->actdir = data->maxdir - 1; data->dirstreams[data->actdir] = NULL; - return result; + return -1; } } diff --git a/io/ftw.h b/io/ftw.h index 5ed908e..4939297 100644 --- a/io/ftw.h +++ b/io/ftw.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. +/* Copyright (C) 1992,1996,1997,1998,1999,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 @@ -103,40 +103,45 @@ typedef int (*__nftw64_func_t) (__const char *__filename, # endif #endif -/* Call a function on every element in a directory tree. */ +/* Call a function on every element in a directory tree. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ #ifndef __USE_FILE_OFFSET64 -extern int ftw (__const char *__dir, __ftw_func_t __func, int __descriptors) - __THROW; +extern int ftw (__const char *__dir, __ftw_func_t __func, int __descriptors); #else # ifdef __REDIRECT extern int __REDIRECT (ftw, (__const char *__dir, __ftw_func_t __func, - int __descriptors) __THROW, ftw64); + int __descriptors), ftw64); # else # define ftw ftw64 # endif #endif #ifdef __USE_LARGEFILE64 extern int ftw64 (__const char *__dir, __ftw64_func_t __func, - int __descriptors) __THROW; + int __descriptors); #endif #ifdef __USE_XOPEN_EXTENDED /* Call a function on every element in a directory tree. FLAG allows - to specify the behaviour more detailed. */ + to specify the behaviour more detailed. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ # ifndef __USE_FILE_OFFSET64 extern int nftw (__const char *__dir, __nftw_func_t __func, int __descriptors, - int __flag) __THROW; + int __flag); # else # ifdef __REDIRECT extern int __REDIRECT (nftw, (__const char *__dir, __nftw_func_t __func, - int __descriptors, int __flag) __THROW, nftw64); + int __descriptors, int __flag), nftw64); # else # define nftw nftw64 # endif # endif # ifdef __USE_LARGEFILE64 extern int nftw64 (__const char *__dir, __nftw64_func_t __func, - int __descriptors, int __flag) __THROW; + int __descriptors, int __flag); # endif #endif -- cgit v1.1