diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2001-05-14 21:45:53 +0000 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2001-05-14 21:45:53 +0000 |
commit | c87bc779d4e9f109e92f8b8f1dfad5d6739f8e97 (patch) | |
tree | cb502e5b3f8fd78964d30d675384ab42d211823c /src/backend/port/dynloader/linux.h | |
parent | 83966889ed1ee662e70b8003087351b0074ae9f7 (diff) | |
download | postgresql-c87bc779d4e9f109e92f8b8f1dfad5d6739f8e97.tar.gz postgresql-c87bc779d4e9f109e92f8b8f1dfad5d6739f8e97.zip |
Use RTLD_GLOBAL flag for dlopen-style dynamic loaders.
Diffstat (limited to 'src/backend/port/dynloader/linux.h')
-rw-r--r-- | src/backend/port/dynloader/linux.h | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/backend/port/dynloader/linux.h b/src/backend/port/dynloader/linux.h index 64807b036fb..d6873763b4b 100644 --- a/src/backend/port/dynloader/linux.h +++ b/src/backend/port/dynloader/linux.h @@ -1,13 +1,12 @@ /*------------------------------------------------------------------------- * - * port_protos.h - * port-specific prototypes for Linux + * Dynamic loader interface for Linux * * * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: linux.h,v 1.11 2001/02/10 02:31:26 tgl Exp $ + * $Id: linux.h,v 1.12 2001/05/14 21:45:53 petere Exp $ * *------------------------------------------------------------------------- */ @@ -15,13 +14,13 @@ #define PORT_PROTOS_H #include "utils/dynamic_loader.h" -#ifdef __ELF__ +#ifdef HAVE_DLOPEN #include <dlfcn.h> #endif -/* dynloader.c */ -#ifndef __ELF__ +#ifndef HAVE_DLOPEN + #ifndef HAVE_DLD_H #define pg_dlsym(handle, funcname) (NULL) #define pg_dlclose(handle) ({}) @@ -29,14 +28,14 @@ #define pg_dlsym(handle, funcname) ((PGFunction) dld_get_func((funcname))) #define pg_dlclose(handle) ({ dld_unlink_by_file(handle, 1); free(handle); }) #endif -#else -/* #define pg_dlopen(f) dlopen(f, 1) */ -#define pg_dlopen(f) dlopen(f, 2) + +#else /* HAVE_DLOPEN */ + +#define pg_dlopen(f) dlopen((f), RTLD_LAZY | RTLD_GLOBAL) #define pg_dlsym dlsym #define pg_dlclose dlclose #define pg_dlerror dlerror -#endif -/* port.c */ +#endif /* HAVE_DLOPEN */ #endif /* PORT_PROTOS_H */ |