about summary refs log tree commit diff
path: root/misc
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-06-26 14:47:05 +0000
committerUlrich Drepper <drepper@redhat.com>1998-06-26 14:47:05 +0000
commitdff14448f7521b27349af4e67d141aba1c9d7edd (patch)
tree2dd0d2abacdead8595ad645a34a4e5f445ccb9f9 /misc
parent768cbca8b5a0db079bab56ef2178c977b1ad2a34 (diff)
downloadglibc-dff14448f7521b27349af4e67d141aba1c9d7edd.tar.gz
glibc-dff14448f7521b27349af4e67d141aba1c9d7edd.tar.xz
glibc-dff14448f7521b27349af4e67d141aba1c9d7edd.zip
Update.
1998-06-26 14:37  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Check for -fexceptions.
	* config.make.in: Define exceptions, not no-exceptions.
	* misc/sys/cdefs.h: Define __PMS.  When using modern g++ define
	__P to use throw().
	* misc/Makefile: Define CFLAGS-tsearch.c and CFLAGS-lsearch.c to
	$(exceptions).
	* stdlib/Makefile: Likewise for bsearch.c, msort.c, and qsort.c.
	* misc/search.h: Use __PMS in tsearch, tfind, tdelete, twalk, tdestroy,
	lfind, and lsearch prototpypes.
	* stdlib/stdlib.h: Likewise for bsearch and qsort.

1998-06-26  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/i386/fpu/bits/mathinline.h (__finite): Use C code, not asm.

1998-06-25  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makefile (remove-old-headers): Make phony.

	* configure.in: Substitute @old_glibc_headers@.

1998-06-26  Ulrich Drepper  <drepper@cygnus.com>

	* libc.map: Remove __libc_uid.

1998-06-24  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* manual/terminal.texi (Allocation, Pseudo-Terminal Pairs): Fix
	typos.

1998-06-26  Ulrich Drepper  <drepper@cygnus.com>

	* libc.map: Add Alpha-specific io function from protected namespace.
Diffstat (limited to 'misc')
-rw-r--r--misc/Makefile3
-rw-r--r--misc/search.h38
-rw-r--r--misc/sys/cdefs.h14
3 files changed, 35 insertions, 20 deletions
diff --git a/misc/Makefile b/misc/Makefile
index 52bf339309..9365fd2a1a 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -63,6 +63,9 @@ gpl2lgpl := error.c error.h
 
 tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent
 
+CFLAGS-tsearch.c = $(exceptions)
+CFLAGS-lsearch.c = $(exceptions)
+
 include ../Rules
 
 $(objpfx)libbsd-compat.a: $(dep-dummy-lib); $(make-dummy-lib)
diff --git a/misc/search.h b/misc/search.h
index 2258ce9d3a..96b28e3f98 100644
--- a/misc/search.h
+++ b/misc/search.h
@@ -127,22 +127,22 @@ VISIT;
 
 /* Search for an entry matching the given KEY in the tree pointed to
    by *ROOTP and insert a new element if not found.  */
-extern void *tsearch __P ((__const void *__key, void **__rootp,
-			   __compar_fn_t compar));
-extern void *__tsearch __P ((__const void *__key, void **__rootp,
+extern void *__tsearch __PMS ((__const void *__key, void **__rootp,
+			       __compar_fn_t compar));
+extern void *tsearch __PMS ((__const void *__key, void **__rootp,
 			     __compar_fn_t compar));
 
 /* Search for an entry matching the given KEY in the tree pointed to
    by *ROOTP.  If no matching entry is available return NULL.  */
-extern void *tfind __P ((__const void *__key, void *__const *__rootp,
-			 __compar_fn_t compar));
-extern void *__tfind __P ((__const void *__key, void *__const *__rootp,
+extern void *__tfind __PMS ((__const void *__key, void *__const *__rootp,
+			     __compar_fn_t compar));
+extern void *tfind __PMS ((__const void *__key, void *__const *__rootp,
 			   __compar_fn_t compar));
 
 /* Remove the element matching KEY from the tree pointed to by *ROOTP.  */
-extern void *tdelete __P ((__const void *__key, void **__rootp,
-			   __compar_fn_t compar));
-extern void *__tdelete __P ((__const void *__key, void **__rootp,
+extern void *__tdelete __PMS ((__const void *__key, void **__rootp,
+			       __compar_fn_t compar));
+extern void *tdelete __PMS ((__const void *__key, void **__rootp,
 			     __compar_fn_t compar));
 
 #ifndef __ACTION_FN_T
@@ -154,9 +154,8 @@ typedef void (*__action_fn_t) __P ((__const void *__nodep,
 
 /* Walk through the whole tree and call the ACTION callback for every node
    or leaf.  */
-extern void twalk __P ((__const void *__root, __action_fn_t action));
-
-extern void __twalk __P ((__const void *__root, __action_fn_t action));
+extern void __twalk __PMS ((__const void *__root, __action_fn_t action));
+extern void twalk __PMS ((__const void *__root, __action_fn_t action));
 
 #ifdef __USE_GNU
 /* Callback type for function to free a tree node.  If the keys are atomic
@@ -164,21 +163,22 @@ extern void __twalk __P ((__const void *__root, __action_fn_t action));
 typedef void (*__free_fn_t) __P ((void *__nodep));
 
 /* Destroy the whole tree, call FREEFCT for each node or leaf.  */
-extern void __tdestroy __P ((void *__root, __free_fn_t freefct));
-extern void tdestroy __P ((void *__root, __free_fn_t freefct));
+extern void __tdestroy __PMS ((void *__root, __free_fn_t freefct));
+extern void tdestroy __PMS ((void *__root, __free_fn_t freefct));
 #endif
 
 
 /* Perform linear search for KEY by comparing by COMPAR in an array
    [BASE,BASE+NMEMB*SIZE).  */
-extern void *lfind __P ((__const void *__key, __const void *__base,
-			 size_t *__nmemb, size_t __size,
-			 __compar_fn_t __compar));
+extern void *lfind __PMS ((__const void *__key, __const void *__base,
+			   size_t *__nmemb, size_t __size,
+			   __compar_fn_t __compar));
 
 /* Perform linear search for KEY by comparing by COMPAR function in
    array [BASE,BASE+NMEMB*SIZE) and insert entry if not found.  */
-extern void *lsearch __P ((__const void *__key, void *__base, size_t *__nmemb,
-			   size_t __size, __compar_fn_t __compar));
+extern void *lsearch __PMS ((__const void *__key, void *__base,
+			     size_t *__nmemb, size_t __size,
+			     __compar_fn_t __compar));
 
 __END_DECLS
 
diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
index 1ced090251..096dc3d6c8 100644
--- a/misc/sys/cdefs.h
+++ b/misc/sys/cdefs.h
@@ -26,7 +26,17 @@
 
 #ifdef __GNUC__
 
-# define __P(args)	args	/* GCC can always grok prototypes.  */
+/* GCC can always grok prototypes.  For C++ programs we add throw()
+   to help it optimize the function calls.  But this works only with
+   gcc 2.8.x and egcs.  */
+# if defined __cplusplus && __GNUC_MINOR__ >= 8
+#  define __P(args)	args throw ()
+# else
+#  define __P(args)	args
+# endif
+/* This macro will be used for functions which might take C++ callback
+   functions.  */
+# define __PMS(args)	args
 # define __DOTS		, ...
 
 #else	/* Not GCC.  */
@@ -36,6 +46,7 @@
 # if (defined __STDC__ && __STDC__) || defined __cplusplus
 
 #  define __P(args)	args
+#  define __PMS(args)	args
 #  define __const	const
 #  define __signed	signed
 #  define __volatile	volatile
@@ -44,6 +55,7 @@
 # else	/* Not ANSI C or C++.  */
 
 #  define __P(args)	()	/* No prototypes.  */
+#  define __PMS(args)	()
 #  define __const		/* No ANSI C keywords.  */
 #  define __signed
 #  define __volatile