|
|
|
@ -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 */ |
|
|
|
|