diff options
-rw-r--r-- | ChangeLog | 22 | ||||
-rw-r--r-- | Makeconfig | 3 | ||||
-rw-r--r-- | argp/Makefile | 3 | ||||
-rw-r--r-- | dirent/Makefile | 5 | ||||
-rw-r--r-- | elf/Makefile | 2 | ||||
-rw-r--r-- | elf/dl-iteratephdr.c | 8 | ||||
-rw-r--r-- | elf/link.h | 2 | ||||
-rw-r--r-- | io/Makefile | 7 | ||||
-rw-r--r-- | linuxthreads/ChangeLog | 5 | ||||
-rw-r--r-- | linuxthreads/Makefile | 3 | ||||
-rw-r--r-- | misc/Makefile | 4 | ||||
-rw-r--r-- | nptl/ChangeLog | 4 | ||||
-rw-r--r-- | nptl/Makefile | 3 | ||||
-rw-r--r-- | posix/Makefile | 4 | ||||
-rw-r--r-- | stdlib/Makefile | 6 |
15 files changed, 65 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog index d2474d5fa0..45ace3ed03 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,25 @@ +2003-09-15 Jakub Jelinek <jakub@redhat.com> + + * argp/argp.h (argp_parse, __argp_parse): Remove __THROW. + * argp/Makefile (CFLAGS-argp-help.c, CFLAGS-argp-parse.c): Add + $(uses-callbacks). + * dirent/Makefile (CFLAGS-scandir.c, CFLAGS-scandir64.c): Likewise. + * elf/Makefile (CFLAGS-dl-iterate-phdr.c, + CFLAGS-dl-iterate-phdr-static.c): Add $(uses-callbacks). + * elf/dl-iteratephdr.c (cancel_handler): New function. + (__dl_iterate_phdr): Add __libc_cleanup_{push,pop}. + * elf/link.h (dl_iterate_phdr): Remove __THROW. + * io/Makefile (CFLAGS-fts.c): Merge into one assignment. + Add $(uses-callbacks). + (CFLAGS-ftw.c, CFLAGS-ftw64.c): Add $(uses-callbacks). + * misc/Makefile (CFLAGS-tsearch.c, CFLAGS-lsearch.c): Change + $(exceptions) to $(uses-callbacks). + * Makeconfig (uses-callbacks): Set to $(exceptions). + * posix/Makefile (CFLAGS-glob.c, CFLAGS-glob64.c): Add + $(uses-callbacks). + * stdlib/Makefile (CFLAGS-bsearch.c, CFLAGS-msort.c, CFLAGS-qsort.c): + Likewise. + 2003-09-15 Andreas Schwab <schwab@suse.de> * sysdeps/m68k/setjmp.c: Add hidden_def. diff --git a/Makeconfig b/Makeconfig index 9755aa99ac..36671db665 100644 --- a/Makeconfig +++ b/Makeconfig @@ -83,6 +83,9 @@ export sysdep_dir := $(sysdep_dir) # Get the values defined by options to `configure'. include $(common-objpfx)config.make +# What flags to give to sources which call user provided callbacks +uses-callbacks = $(exceptions) + # We have a special subdir for each binary format. # For now, only ELF is fully supported. ifeq ($(elf),yes) diff --git a/argp/Makefile b/argp/Makefile index d341e57006..a68ca1bee3 100644 --- a/argp/Makefile +++ b/argp/Makefile @@ -28,7 +28,8 @@ routines = $(addprefix argp-, ba fmtstream fs-xinl help parse pv \ tests = argp-test tst-argp1 -CFLAGS-argp-help.c = -fexceptions +CFLAGS-argp-help.c = $(uses-callbacks) -fexceptions +CFLAGS-argp-parse.c = $(uses-callbacks) CFLAGS-argp-fmtstream.c = -fexceptions include ../Rules diff --git a/dirent/Makefile b/dirent/Makefile index 481141136b..df150bcedc 100644 --- a/dirent/Makefile +++ b/dirent/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2000, 2002 Free Software Foundation, Inc. +# Copyright (C) 1991-2000, 2002, 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 @@ -30,6 +30,9 @@ distribute := dirstream.h tests := list tst-seekdir opendir-tst1 bug-readdir1 +CFLAGS-scandir.c = $(uses-callbacks) +CFLAGS-scandir64.c = $(uses-callbacks) + include ../Rules opendir-tst1-ARGS = --test-dir=${common-objpfx}dirent diff --git a/elf/Makefile b/elf/Makefile index 7554962fb4..734b7854e8 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -84,6 +84,8 @@ distribute := rtld-Rules \ CFLAGS-dl-runtime.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-dl-lookup.c = -fexceptions -fasynchronous-unwind-tables +CFLAGS-dl-iterate-phdr.c = $(uses-callbacks) +CFLAGS-dl-iterate-phdr-static.c = $(uses-callbacks) include ../Makeconfig diff --git a/elf/dl-iteratephdr.c b/elf/dl-iteratephdr.c index dccaf0aff8..d4feb690c3 100644 --- a/elf/dl-iteratephdr.c +++ b/elf/dl-iteratephdr.c @@ -23,6 +23,12 @@ #include <stddef.h> #include <bits/libc-lock.h> +static void +cancel_handler (void *arg __attribute__((unused))) +{ + __rtld_lock_unlock_recursive (GL(dl_load_lock)); +} + int __dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info, size_t size, void *data), void *data) @@ -33,6 +39,7 @@ __dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info, /* Make sure we are alone. */ __rtld_lock_lock_recursive (GL(dl_load_lock)); + __libc_cleanup_push (cancel_handler, 0); for (l = GL(dl_loaded); l != NULL; l = l->l_next) { @@ -46,6 +53,7 @@ __dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info, } /* Release the lock. */ + __libc_cleanup_pop (0); __rtld_lock_unlock_recursive (GL(dl_load_lock)); return ret; diff --git a/elf/link.h b/elf/link.h index f8e7f629d0..7e2a8f6fee 100644 --- a/elf/link.h +++ b/elf/link.h @@ -106,7 +106,7 @@ __BEGIN_DECLS extern int dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info, size_t size, void *data), - void *data) __THROW; + void *data); __END_DECLS diff --git a/io/Makefile b/io/Makefile index f4956841ae..24ead888b2 100644 --- a/io/Makefile +++ b/io/Makefile @@ -63,7 +63,6 @@ distribute := ftwtest-sh include ../Rules -CFLAGS-fts.c = -Wno-uninitialized CFLAGS-fcntl.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-poll.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-lockf.c = -fexceptions @@ -71,9 +70,9 @@ CFLAGS-statfs.c = -fexceptions CFLAGS-fstatfs.c = -fexceptions CFLAGS-statvfs.c = -fexceptions CFLAGS-fstatvfs.c = -fexceptions -CFLAGS-fts.c = -fexceptions -CFLAGS-ftw.c = -fexceptions -CFLAGS-ftw64.c = -fexceptions +CFLAGS-fts.c = -Wno-uninitialized $(uses-callbacks) -fexceptions +CFLAGS-ftw.c = $(uses-callbacks) -fexceptions +CFLAGS-ftw64.c = $(uses-callbacks) -fexceptions CFLAGS-lockf.c = -fexceptions CFLAGS-posix_fallocate.c = -fexceptions CFLAGS-posix_fallocate64.c = -fexceptions diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index bd429e92af..62d4df0f62 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,8 @@ +2003-09-15 Jakub Jelinek <jakub@redhat.com> + + * Makefile (CFLAGS-mutex.c): Add $(uses-callbacks). + (CFLAGS-sighandler.c): Change $(exceptions) into $(uses-callbacks). + 2003-09-12 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/s390/bits/typesizes.h: New. diff --git a/linuxthreads/Makefile b/linuxthreads/Makefile index dbca5b5c81..7e1fc2390e 100644 --- a/linuxthreads/Makefile +++ b/linuxthreads/Makefile @@ -184,7 +184,8 @@ CFLAGS-pthread.c += -D__NO_WEAK_PTHREAD_ALIASES $(znodelete-$(have-z-nodelete)) CFLAGS-ptfork.c += -D__NO_WEAK_PTHREAD_ALIASES CFLAGS-cancel.c += -D__NO_WEAK_PTHREAD_ALIASES -D_RPC_THREAD_SAFE_ CFLAGS-unload.c += -DPREFIX=\"$(objpfx)\" -CFLAGS-sighandler.c += $(exceptions) +CFLAGS-mutex.c += $(uses-callbacks) +CFLAGS-sighandler.c += $(uses-callbacks) ifeq (yes,$(versioning)) -include $(common-objpfx)tls.make diff --git a/misc/Makefile b/misc/Makefile index 12d48432a8..e74070113d 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -75,8 +75,8 @@ gpl2lgpl := error.c error.h tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent tst-hsearch -CFLAGS-tsearch.c = $(exceptions) -CFLAGS-lsearch.c = $(exceptions) +CFLAGS-tsearch.c = $(uses-callbacks) +CFLAGS-lsearch.c = $(uses-callbacks) CFLAGS-pselect.c = -fexceptions CFLAGS-readv.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-writev.c = -fexceptions -fasynchronous-unwind-tables diff --git a/nptl/ChangeLog b/nptl/ChangeLog index ab8b412244..17648b8008 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,7 @@ +2003-09-15 Jakub Jelinek <jakub@redhat.com> + + * Makefile (CFLAGS-pthread_once.c): Add $(uses-callbacks). + 2003-09-11 Ulrich Drepper <drepper@redhat.com> * pthread_mutex_lock.c: Minor code rearrangements. diff --git a/nptl/Makefile b/nptl/Makefile index 816064f73e..fb0f0a6b59 100644 --- a/nptl/Makefile +++ b/nptl/Makefile @@ -162,7 +162,8 @@ CFLAGS-forward.c = -fexceptions CFLAGS-pthread_testcancel.c = -fexceptions CFLAGS-pthread_join.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-pthread_timedjoin.c = -fexceptions -fasynchronous-unwind-tables -CFLAGS-pthread_once.c = -fexceptions -fasynchronous-unwind-tables +CFLAGS-pthread_once.c = $(uses-callbacks) -fexceptions \ + -fasynchronous-unwind-tables CFLAGS-pthread_cond_wait.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-pthread_cond_timedwait.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-sem_wait.c = -fexceptions -fasynchronous-unwind-tables diff --git a/posix/Makefile b/posix/Makefile index 1640e3ee4b..d6249a8f3e 100644 --- a/posix/Makefile +++ b/posix/Makefile @@ -136,8 +136,8 @@ CFLAGS-spawn.c = -fexceptions CFLAGS-spawnp.c = -fexceptions CFLAGS-spawni.c = -fexceptions CFLAGS-pause.c = -fexceptions -CFLAGS-glob.c = -fexceptions -CFLAGS-glob64.c = -fexceptions +CFLAGS-glob.c = $(uses-callbacks) -fexceptions +CFLAGS-glob64.c = $(uses-callbacks) -fexceptions tstgetopt-ARGS = -a -b -cfoobar --required foobar --optional=bazbug \ --none random --col --color --colour diff --git a/stdlib/Makefile b/stdlib/Makefile index 9b74c6febc..5ff7dfdbc6 100644 --- a/stdlib/Makefile +++ b/stdlib/Makefile @@ -79,9 +79,9 @@ distribute := $(distribute) $(mpn-headers) gen-mpn-copy fpioconst.h generated += isomac isomac.out -CFLAGS-bsearch.c = $(exceptions) -CFLAGS-msort.c = $(exceptions) -CFLAGS-qsort.c = $(exceptions) +CFLAGS-bsearch.c = $(uses-callbacks) +CFLAGS-msort.c = $(uses-callbacks) +CFLAGS-qsort.c = $(uses-callbacks) CFLAGS-system.c = -fexceptions CFLAGS-fmtmsg.c = -fexceptions |