diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2000-12-11 00:49:54 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2000-12-11 00:49:54 +0000 |
commit | 41fe2a2a03d91dc836a83bbd78190c36fd54541f (patch) | |
tree | c7354872f5ca50dbd180fa36ebb9d8ad3114376d /src/backend/port/dynloader | |
parent | 839de3c577d6ed67543aeff47c3adb2e7d7543da (diff) |
Darwin porting patches from Peter Bierman <bierman@apple.com>
Diffstat (limited to 'src/backend/port/dynloader')
-rw-r--r-- | src/backend/port/dynloader/darwin.c | 22 | ||||
-rw-r--r-- | src/backend/port/dynloader/darwin.h | 8 |
2 files changed, 19 insertions, 11 deletions
diff --git a/src/backend/port/dynloader/darwin.c b/src/backend/port/dynloader/darwin.c index d45e4ad9eaf..6c149b9f55e 100644 --- a/src/backend/port/dynloader/darwin.c +++ b/src/backend/port/dynloader/darwin.c @@ -3,14 +3,14 @@ * available with a PostgreSQL-compatible license. Kudos Wilfredo * Sánchez <wsanchez@apple.com>. * - * $Header: /cvsroot/pgsql/src/backend/port/dynloader/darwin.c,v 1.3 2000/11/14 21:26:21 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/port/dynloader/darwin.c,v 1.4 2000/12/11 00:49:54 tgl Exp $ */ #include "postgres.h" #include <mach-o/dyld.h> #include "dynloader.h" -void *pg_dlopen(const char *filename) +void *pg_dlopen(char *filename) { NSObjectFileImage image; @@ -26,18 +26,26 @@ void pg_dlclose(void *handle) return; } -PGFunction pg_dlsym(void *handle, const char *funcname) +PGFunction pg_dlsym(void *handle, char *funcname) { NSSymbol symbol; char *symname = (char*)malloc(strlen(funcname)+2); sprintf(symname, "_%s", funcname); - symbol = NSLookupAndBindSymbol(symname); - free(symname); - return (PGFunction) NSAddressOfSymbol(symbol); + if (NSIsSymbolNameDefined(symname)) + { + symbol = NSLookupAndBindSymbol(symname); + free(symname); + return (PGFunction) NSAddressOfSymbol(symbol); + } + else + { + free(symname); + return (PGFunction)NULL; + } } -const char *pg_dlerror(void) +char *pg_dlerror(void) { return "no error message available"; } diff --git a/src/backend/port/dynloader/darwin.h b/src/backend/port/dynloader/darwin.h index 36ba3f34886..0e73eb2be67 100644 --- a/src/backend/port/dynloader/darwin.h +++ b/src/backend/port/dynloader/darwin.h @@ -1,8 +1,8 @@ -/* $Header: /cvsroot/pgsql/src/backend/port/dynloader/darwin.h,v 1.2 2000/11/09 19:00:50 petere Exp $ */ +/* $Header: /cvsroot/pgsql/src/backend/port/dynloader/darwin.h,v 1.3 2000/12/11 00:49:54 tgl Exp $ */ #include "fmgr.h" -void *pg_dlopen(const char *filename); -PGFunction pg_dlsym(void *handle, const char *funcname); +void* pg_dlopen(char *filename); +PGFunction pg_dlsym(void *handle, char *funcname); void pg_dlclose(void *handle); -const char *pg_dlerror(void); +char* pg_dlerror(void); |