diff --git a/ChangeLog b/ChangeLog index ca99dc1e98..8adfceb5ee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +2003-09-03 Ulrich Drepper + + * grp/Makefile (CFLAGS-getgrent_r.c): Add -fexceptions. + (CFLAGS-getgrent.c): Likewise. + * pwd/Makefile (CFLAGS-getpwent_r.c): Add -fexceptions. + (CFLAGS-getpwent.c): Likewise. + * shadow/Makefile (CFLAGS-getspent_r.c): Add -fexceptions. + (CFLAGS-getspent.c): Likewise. + + * inet/Makefile: Add -fexceptions to CFLAGS for the various + getXXent and getXXbyYY functions. + + * locale/loadlocale.c: Use not-cancelable variants of open, close, + and read. + 2003-09-02 Jakub Jelinek * sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_routines): Remove diff --git a/grp/Makefile b/grp/Makefile index 3b836b0b49..0c16c51911 100644 --- a/grp/Makefile +++ b/grp/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991, 92, 96, 97, 98, 99, 2000 Free Software Foundation, Inc. +# Copyright (C) 1991,92,96,97,98,99,2000,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 @@ -49,6 +49,8 @@ ifeq ($(have-thread-library),yes) CFLAGS-getgrgid_r.c = -DUSE_NSCD=1 CFLAGS-getgrnam_r.c = -DUSE_NSCD=1 +CFLAGS-getgrent_r.c = -fexceptions +CFLAGS-getgrent.c = -fexceptions endif diff --git a/inet/Makefile b/inet/Makefile index 944bd97a32..66648dd496 100644 --- a/inet/Makefile +++ b/inet/Makefile @@ -57,9 +57,28 @@ include ../Rules ifeq ($(have-thread-library),yes) CFLAGS-gethstbyad_r.c = -DUSE_NSCD=1 -fexceptions +CFLAGS-gethstbyad.c = -fexceptions CFLAGS-gethstbynm_r.c = -DUSE_NSCD=1 -fexceptions +CFLAGS-gethstbynm.c = -fexceptions CFLAGS-gethstbynm2_r.c = -DUSE_NSCD=1 -fexceptions +CFLAGS-gethstbynm2.c = -fexceptions +CFLAGS-gethstent_r.c = -fexceptions +CFLAGS-gethstent.c = -fexceptions CFLAGS-rcmd.c = -fexceptions +CFLAGS-getnetbynm_r.c = -fexceptions +CFLAGS-getnetbynm.c = -fexceptions +CFLAGS-getnetbyad_r.c = -fexceptions +CFLAGS-getnetbyad.c = -fexceptions +CFLAGS-getnetent_r.c = -fexceptions +CFLAGS-getnetent.c = -fexceptions +CFLAGS-getaliasent_r.c = -fexceptions +CFLAGS-getaliasent.c = -fexceptions +CFLAGS-getrpcent_r.c = -fexceptions +CFLAGS-getrpcent.c = -fexceptions +CFLAGS-getservent_r.c = -fexceptions +CFLAGS-getservent.c = -fexceptions +CFLAGS-getprtent_r.c = -fexceptions +CFLAGS-getprtent.c = -fexceptions endif diff --git a/locale/loadlocale.c b/locale/loadlocale.c index 32faad57e9..b2d944794f 100644 --- a/locale/loadlocale.c +++ b/locale/loadlocale.c @@ -1,5 +1,5 @@ /* Functions to read locale data files. - Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -30,6 +30,7 @@ #endif #include +#include #include "localeinfo.h" @@ -142,7 +143,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category) file->decided = 1; file->data = NULL; - fd = __open (file->filename, O_RDONLY); + fd = open_not_cancel_2 (file->filename, O_RDONLY); if (__builtin_expect (fd, 0) < 0) /* Cannot open the file. */ return; @@ -150,7 +151,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category) if (__builtin_expect (__fxstat64 (_STAT_VER, fd, &st), 0) < 0) { puntfd: - __close (fd); + close_not_cancel_no_status (fd); return; } if (__builtin_expect (S_ISDIR (st.st_mode), 0)) @@ -160,7 +161,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category) char *newp; size_t filenamelen; - __close (fd); + close_not_cancel_no_status (fd); filenamelen = strlen (file->filename); newp = (char *) alloca (filenamelen @@ -170,7 +171,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category) _nl_category_names[category], _nl_category_name_sizes[category] + 1); - fd = __open (newp, O_RDONLY); + fd = open_not_cancel_2 (newp, O_RDONLY); if (__builtin_expect (fd, 0) < 0) return; @@ -206,7 +207,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category) char *p = (char *) filedata; while (to_read > 0) { - nread = __read (fd, p, to_read); + nread = read_not_cancel (fd, p, to_read); if (__builtin_expect (nread, 1) <= 0) { free (filedata); @@ -225,7 +226,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category) #endif /* _POSIX_MAPPED_FILES */ /* We have mapped the data, so we no longer need the descriptor. */ - __close (fd); + close_not_cancel_no_status (fd); if (__builtin_expect (filedata == NULL, 0)) /* We failed to map or read the data. */ diff --git a/manual/filesys.texi b/manual/filesys.texi index be1ba79ddb..c858e2b1fa 100644 --- a/manual/filesys.texi +++ b/manual/filesys.texi @@ -3181,7 +3181,8 @@ file name. Usually the template string is something like template string, you @emph{must not} pass string constants to them. String constants are normally in read-only storage, so your program would crash when @code{mktemp} or @code{mkstemp} tried to modify the -string. +string. These functions are declared in the header file @file{stdlib.h}. +@pindex stdlib.h @comment stdlib.h @comment Unix diff --git a/nptl/tst-stack2.c b/nptl/tst-stack2.c index 93487db8ae..9b2788ca59 100644 --- a/nptl/tst-stack2.c +++ b/nptl/tst-stack2.c @@ -24,9 +24,10 @@ #include #include -int seen; +static int seen; -void *tf (void *p) +static void * +tf (void *p) { ++seen; return NULL; @@ -74,83 +75,5 @@ do_test (void) } -#define TEST_FUNCTION do_test () -#include "../test-skeleton.c" -/* Copyright (C) 2003 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jakub Jelinek , 2003. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* Test whether it is possible to create a thread with PTHREAD_STACK_MIN - stack size. */ - -#include -#include -#include - -int seen; - -void *tf (void *p) -{ - ++seen; - return NULL; -} - -int -do_test (void) -{ - pthread_attr_t attr; - pthread_attr_init (&attr); - - int result = 0; - int res = pthread_attr_setstacksize (&attr, PTHREAD_STACK_MIN); - if (res) - { - printf ("pthread_attr_setstacksize failed %d\n", res); - result = 1; - } - - /* Create the thread. */ - pthread_t th; - res = pthread_create (&th, &attr, tf, NULL); - if (res) - { - printf ("pthread_create failed %d\n", res); - result = 1; - } - else - { - res = pthread_join (th, NULL); - if (res) - { - printf ("pthread_join failed %d\n", res); - result = 1; - } - } - - if (seen != 1) - { - printf ("seen %d != 1\n", seen); - result = 1; - } - - return result; -} - - #define TEST_FUNCTION do_test () #include "../test-skeleton.c" diff --git a/pwd/Makefile b/pwd/Makefile index 3cb0292a67..f656022ae2 100644 --- a/pwd/Makefile +++ b/pwd/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. +# Copyright (C) 1991,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 @@ -34,6 +34,8 @@ ifeq ($(have-thread-library),yes) CFLAGS-getpwuid_r.c = -DUSE_NSCD=1 CFLAGS-getpwnam_r.c = -DUSE_NSCD=1 +CFLAGS-getpwent_r.c = -fexceptions +CFLAGS-getpwent.c = -fexceptions endif diff --git a/shadow/Makefile b/shadow/Makefile index 4c55d14064..bea9c7f691 100644 --- a/shadow/Makefile +++ b/shadow/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1996 Free Software Foundation, Inc. +# Copyright (C) 1996, 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 @@ -26,5 +26,7 @@ routines = getspent getspnam sgetspent fgetspent putspent \ getspent_r getspnam_r sgetspent_r fgetspent_r \ lckpwdf +CFLAGS-getspent_r.c = -fexceptions +CFLAGS-getspent.c = -fexceptions include ../Rules