diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2018-07-10 15:48:24 +0200 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2018-08-13 23:21:01 +0200 |
commit | b5d29299ccad9b2385236f2b82a0c4e1365b9add (patch) | |
tree | 46599492f5bf464f2cc782715afebd4275cf222a /src | |
parent | 3ebdd21b794b49fde2010ff3d39071e02d27b404 (diff) | |
download | postgresql-b5d29299ccad9b2385236f2b82a0c4e1365b9add.tar.gz postgresql-b5d29299ccad9b2385236f2b82a0c4e1365b9add.zip |
Remove obsolete darwin dynloader code
not needed since macOS 10.3 (2003)
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/port/dynloader/darwin.c | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/src/backend/port/dynloader/darwin.c b/src/backend/port/dynloader/darwin.c index 93f19878f56..65fa0e39f21 100644 --- a/src/backend/port/dynloader/darwin.c +++ b/src/backend/port/dynloader/darwin.c @@ -1,24 +1,15 @@ /* * Dynamic loading support for macOS (Darwin) * - * If dlopen() is available (Darwin 10.3 and later), we just use it. - * Otherwise we emulate it with the older, now deprecated, NSLinkModule API. - * * src/backend/port/dynloader/darwin.c */ #include "postgres.h" -#ifdef HAVE_DLOPEN #include <dlfcn.h> -#else -#include <mach-o/dyld.h> -#endif #include "dynloader.h" -#ifdef HAVE_DLOPEN - void * pg_dlopen(const char *filename) { @@ -34,7 +25,6 @@ pg_dlclose(void *handle) PGFunction pg_dlsym(void *handle, const char *funcname) { - /* Do not prepend an underscore: see dlopen(3) */ return dlsym(handle, funcname); } @@ -43,96 +33,3 @@ pg_dlerror(void) { return dlerror(); } -#else /* !HAVE_DLOPEN */ - -/* - * These routines were taken from the Apache source, but were made - * available with a PostgreSQL-compatible license. Kudos Wilfredo - * Sánchez <wsanchez@apple.com>. - */ - -static NSObjectFileImageReturnCode cofiff_result = NSObjectFileImageFailure; - -void * -pg_dlopen(const char *filename) -{ - NSObjectFileImage image; - - cofiff_result = NSCreateObjectFileImageFromFile(filename, &image); - if (cofiff_result != NSObjectFileImageSuccess) - return NULL; - return NSLinkModule(image, filename, - NSLINKMODULE_OPTION_BINDNOW | - NSLINKMODULE_OPTION_RETURN_ON_ERROR); -} - -void -pg_dlclose(void *handle) -{ - NSUnLinkModule(handle, NSUNLINKMODULE_OPTION_NONE); -} - -PGFunction -pg_dlsym(void *handle, const char *funcname) -{ - NSSymbol symbol; - char *symname = (char *) malloc(strlen(funcname) + 2); - - if (!symname) - return NULL; - - sprintf(symname, "_%s", funcname); - if (NSIsSymbolNameDefined(symname)) - { - symbol = NSLookupAndBindSymbol(symname); - - free(symname); - return (PGFunction) NSAddressOfSymbol(symbol); - } - else - { - free(symname); - return NULL; - } -} - -char * -pg_dlerror(void) -{ - NSLinkEditErrors c; - int errorNumber; - const char *fileName; - const char *errorString = NULL; - - switch (cofiff_result) - { - case NSObjectFileImageSuccess: - /* must have failed in NSLinkModule */ - NSLinkEditError(&c, &errorNumber, &fileName, &errorString); - if (errorString == NULL || *errorString == '\0') - errorString = "unknown link-edit failure"; - break; - case NSObjectFileImageFailure: - errorString = "failed to open object file"; - break; - case NSObjectFileImageInappropriateFile: - errorString = "inappropriate object file"; - break; - case NSObjectFileImageArch: - errorString = "object file is for wrong architecture"; - break; - case NSObjectFileImageFormat: - errorString = "object file has wrong format"; - break; - case NSObjectFileImageAccess: - errorString = "insufficient permissions for object file"; - break; - default: - errorString = "unknown failure to open object file"; - break; - } - - return (char *) errorString; -} - -#endif /* HAVE_DLOPEN */ |