(glrefmain.out): Test is not expected to fail anymore.
[kopensolaris-gnu/glibc.git] / dlfcn / dlfcn.h
index 76fdc3c..4640f7d 100644 (file)
@@ -1,5 +1,5 @@
 /* User functions for run-time dynamic loading.
-   Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1995-1999, 2000 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
 #define        _DLFCN_H 1
 
 #include <features.h>
-#define __need_NULL
-#include <stddef.h>
 
 /* Collect various system dependent definitions and declarations.  */
 #include <bits/dlfcn.h>
 
+#ifdef __USE_GNU
 /* If the first argument of `dlsym' or `dlvsym' is set to RTLD_NEXT
    the run-time address of the symbol called NAME in the next shared
    object is returned.  The "next" relation is defined by the order
    the shared objects were loaded.  */
-#define RTLD_NEXT      ((void *) -1l)
+# define RTLD_NEXT     ((void *) -1l)
 
 /* If the first argument to `dlsym' or `dlvsym' is set to RTLD_DEFAULT
    the run-time address of the symbol called NAME in the global scope
    is returned.  */
-#define RTLD_DEFAULT   NULL
+# define RTLD_DEFAULT  ((void *) 0)
+#endif
 
 __BEGIN_DECLS
 
 /* Open the shared object FILE and map it in; return a handle that can be
    passed to `dlsym' to get symbol values from it.  */
-extern void *dlopen __P ((__const char *__file, int __mode));
+extern void *dlopen (__const char *__file, int __mode) __THROW;
 
 /* Unmap and close a shared object opened by `dlopen'.
    The handle cannot be used again after calling `dlclose'.  */
-extern int dlclose __P ((void *__handle));
+extern int dlclose (void *__handle) __THROW;
 
 /* Find the run-time address in the shared object HANDLE refers to
    of the symbol called NAME.  */
-extern void *dlsym __P ((void *__restrict __handle,
-                        __const char *__restrict __name));
+extern void *dlsym (void *__restrict __handle,
+                   __const char *__restrict __name) __THROW;
 
 #ifdef __USE_GNU
 /* Find the run-time address in the shared object HANDLE refers to
    of the symbol called NAME with VERSION.  */
-extern void *dlvsym __P ((void *__restrict __handle,
-                         __const char *__restrict __name,
-                         __const char *__restrict __version));
+extern void *dlvsym (void *__restrict __handle,
+                    __const char *__restrict __name,
+                    __const char *__restrict __version) __THROW;
 #endif
 
 /* When any of the above functions fails, call this function
    to return a string describing the error.  Each call resets
    the error string so that a following call returns null.  */
-extern char *dlerror __P ((void));
+extern char *dlerror (void) __THROW;
 
 #ifdef __USE_GNU
 /* Fill in *INFO with the following information about ADDRESS.
@@ -76,23 +76,7 @@ typedef struct
     __const char *dli_sname;   /* Name of nearest symbol.  */
     void *dli_saddr;           /* Exact value of nearest symbol.  */
   } Dl_info;
-extern int dladdr __P ((const void *__address, Dl_info *__info));
-
-/* To support profiling of shared objects it is a good idea to call
-   the function found using `dlsym' using the following macro since
-   these calls do not use the PLT.  But this would mean the dynamic
-   loader has no chance to find out when the function is called.  The
-   macro applies the necessary magic so that profiling is possible.
-   Rewrite
-       foo = (*fctp) (arg1, arg2);
-   into
-        foo = DL_CALL_FCT (fctp, (arg1, arg2));
-*/
-# define DL_CALL_FCT(fctp, args) \
-  (_dl_mcount_wrapper_check (fctp), (*(fctp)) args)
-
-/* This function calls the profiling functions.  */
-extern void _dl_mcount_wrapper_check __P ((void *__selfpc));
+extern int dladdr (const void *__address, Dl_info *__info) __THROW;
 #endif
 
 __END_DECLS