-#if defined(__DARWIN__)
-// ---------------------------------------------------------------------------
-// For Darwin/Mac OS X
-//   supply the sun style dlopen functions in terms of Darwin NS*
-// ---------------------------------------------------------------------------
-
-/* Porting notes:
- *   The dlopen port is a port from dl_next.xs by Anno Siegel.
- *   dl_next.xs is itself a port from dl_dlopen.xs by Paul Marquess.
- *   The method used here is just to supply the sun style dlopen etc.
- *   functions in terms of Darwin NS*.
- */
-
-#include <stdio.h>
-#include <mach-o/dyld.h>
-
-static char dl_last_error[1024];
-
-static
-void TranslateError(const char *path, int number)
-{
-    unsigned int index;
-    static char *OFIErrorStrings[] =
-    {
-       "%s(%d): Object Image Load Failure\n",
-       "%s(%d): Object Image Load Success\n",
-       "%s(%d): Not an recognisable object file\n",
-       "%s(%d): No valid architecture\n",
-       "%s(%d): Object image has an invalid format\n",
-       "%s(%d): Invalid access (permissions?)\n",
-       "%s(%d): Unknown error code from NSCreateObjectFileImageFromFile\n",
-    };
-#define NUM_OFI_ERRORS (sizeof(OFIErrorStrings) / sizeof(OFIErrorStrings[0]))
-
-    index = number;
-    if (index > NUM_OFI_ERRORS - 1) {
-        index = NUM_OFI_ERRORS - 1;
-    }
-    sprintf(dl_last_error, OFIErrorStrings[index], path, number);
-}
-
-const char *dlerror()
-{
-    return dl_last_error;
-}
-
-void *dlopen(const char *path, int WXUNUSED(mode) /* mode is ignored */)
-{
-    int dyld_result;
-    NSObjectFileImage ofile;
-    NSModule handle = NULL;
-
-    dyld_result = NSCreateObjectFileImageFromFile(path, &ofile);
-    if (dyld_result != NSObjectFileImageSuccess)
-    {
-       TranslateError(path, dyld_result);
-    }
-    else
-    {
-       // NSLinkModule will cause the run to abort on any link error's
-       // not very friendly but the error recovery functionality is limited.
-       handle = NSLinkModule(ofile, path, NSLINKMODULE_OPTION_BINDNOW);
-    }
-
-    return handle;
-}
-
-int dlclose(void *handle)
-{
-    NSUnLinkModule( handle, NSUNLINKMODULE_OPTION_NONE);
-    return 0;
-}
-
-void *dlsym(void *handle, const char *symbol)
-{
-    void *addr;
-    
-    NSSymbol nsSymbol = NSLookupSymbolInModule( handle , symbol ) ;
-
-    if ( nsSymbol) 
-    {
-           addr = NSAddressOfSymbol(nsSymbol);
-    }
-    else 
-    {
-           addr = NULL;
-    }
-    return addr;
-}
-
-#endif // defined(__DARWIN__)
-
-