gc.h (dlopen): Define as GC_dlopen on Linux.
* gc.h (dlopen): Define as GC_dlopen on Linux. (GC_dlopen): Declare on Linux. * dyn_load.c (GC_dlopen): Define for Linux. From-SVN: r31970
This commit is contained in:
parent
59309a850d
commit
9339399091
@ -1,3 +1,9 @@
|
|||||||
|
2000-02-14 Tom Tromey <tromey@cygnus.com>
|
||||||
|
|
||||||
|
* gc.h (dlopen): Define as GC_dlopen on Linux.
|
||||||
|
(GC_dlopen): Declare on Linux.
|
||||||
|
* dyn_load.c (GC_dlopen): Define for Linux.
|
||||||
|
|
||||||
Fri Jan 28 17:13:20 2000 Anthony Green <green@cygnus.com>
|
Fri Jan 28 17:13:20 2000 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
* gcconfig.h (DATASTART): Add missing extern declaration
|
* gcconfig.h (DATASTART): Add missing extern declaration
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
#include "gc_priv.h"
|
#include "gc_priv.h"
|
||||||
|
|
||||||
/* BTL: avoid circular redefinition of dlopen if SOLARIS_THREADS defined */
|
/* BTL: avoid circular redefinition of dlopen if SOLARIS_THREADS defined */
|
||||||
# if defined(SOLARIS_THREADS) && defined(dlopen)
|
# if (defined(SOLARIS_THREADS) || defined(LINUX_THREADS)) && defined(dlopen)
|
||||||
/* To support threads in Solaris, gc.h interposes on dlopen by */
|
/* To support threads in Solaris, gc.h interposes on dlopen by */
|
||||||
/* defining "dlopen" to be "GC_dlopen", which is implemented below. */
|
/* defining "dlopen" to be "GC_dlopen", which is implemented below. */
|
||||||
/* However, both GC_FirstDLOpenedLinkMap() and GC_dlopen() use the */
|
/* However, both GC_FirstDLOpenedLinkMap() and GC_dlopen() use the */
|
||||||
@ -190,11 +190,6 @@ void * GC_dlopen(const char *path, int mode)
|
|||||||
}
|
}
|
||||||
# endif /* SOLARIS_THREADS */
|
# endif /* SOLARIS_THREADS */
|
||||||
|
|
||||||
/* BTL: added to fix circular dlopen definition if SOLARIS_THREADS defined */
|
|
||||||
# if defined(GC_must_restore_redefined_dlopen)
|
|
||||||
# define dlopen GC_dlopen
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# ifndef USE_PROC_FOR_LIBRARIES
|
# ifndef USE_PROC_FOR_LIBRARIES
|
||||||
void GC_register_dynamic_libraries()
|
void GC_register_dynamic_libraries()
|
||||||
{
|
{
|
||||||
@ -260,6 +255,25 @@ void GC_register_dynamic_libraries()
|
|||||||
# endif /* !USE_PROC ... */
|
# endif /* !USE_PROC ... */
|
||||||
# endif /* SUNOS */
|
# endif /* SUNOS */
|
||||||
|
|
||||||
|
#ifdef LINUX_THREADS
|
||||||
|
#include <dlfcn.h>
|
||||||
|
|
||||||
|
void * GC_dlopen(const char *path, int mode)
|
||||||
|
{
|
||||||
|
void * result;
|
||||||
|
|
||||||
|
LOCK();
|
||||||
|
result = dlopen(path, mode);
|
||||||
|
UNLOCK();
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
|
#endif /* LINUX_THREADS */
|
||||||
|
|
||||||
|
/* BTL: added to fix circular dlopen definition if SOLARIS_THREADS defined */
|
||||||
|
#if defined(GC_must_restore_redefined_dlopen)
|
||||||
|
# define dlopen GC_dlopen
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF)
|
#if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF)
|
||||||
|
|
||||||
/* Dynamic loading code for Linux running ELF. Somewhat tested on
|
/* Dynamic loading code for Linux running ELF. Somewhat tested on
|
||||||
|
@ -712,6 +712,10 @@ GC_API void (*GC_is_visible_print_proc)
|
|||||||
|
|
||||||
# endif /* SOLARIS_THREADS */
|
# endif /* SOLARIS_THREADS */
|
||||||
|
|
||||||
|
#if defined(LINUX_THREADS)
|
||||||
|
void * GC_dlopen(const char *path, int mode);
|
||||||
|
# define dlopen GC_dlopen
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(IRIX_THREADS) || defined(LINUX_THREADS) || defined(HPUX_THREADS)
|
#if defined(IRIX_THREADS) || defined(LINUX_THREADS) || defined(HPUX_THREADS)
|
||||||
/* We treat these similarly. */
|
/* We treat these similarly. */
|
||||||
|
Loading…
Reference in New Issue
Block a user