Update of /cvsroot/pure-data/packages/patches/darwin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6548/patches/darwin
Added Files: darwin_dlopen.patch Log Message: added in Jamie's dlopn patch so I can use his binaries; fixed a number of bugs reported on the list; added platform-specific noncvs handling
--- NEW FILE: darwin_dlopen.patch --- Index: s_loader.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/s_loader.c,v retrieving revision 1.4 diff -u -w -r1.4 s_loader.c --- s_loader.c 6 Sep 2004 20:20:35 -0000 1.4 +++ s_loader.c 26 Nov 2005 00:27:11 -0000 @@ -2,6 +2,9 @@ * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */
+#ifdef __APPLE__ +#define DL_OPEN +#endif #ifdef DL_OPEN #include <dlfcn.h> #endif @@ -13,7 +16,7 @@ #include <io.h> #include <windows.h> #endif -#ifdef MACOSX +#ifdef MACOSX10.2 #include <mach-o/dyld.h> #endif #include <string.h> @@ -90,7 +93,7 @@ if (lastdot = strrchr(nameptr, '.')) *lastdot = 0;
-#ifdef MACOSX +#ifdef MACOSX10.2 strcpy(symname, "_"); strcat(symname, nameptr); #else @@ -122,7 +125,7 @@ } makeout = (t_xxx)GetProcAddress(ntdll, symname); #endif -#ifdef MACOSX +#ifdef MACOSX10.2 { NSObjectFileImage image; void *ret; @@ -134,8 +137,18 @@ return 0; } ret = NSLinkModule( image, filename, - NSLINKMODULE_OPTION_BINDNOW + NSLINKMODULE_OPTION_PRIVATE); - + NSLINKMODULE_OPTION_BINDNOW | + //NSLINKMODULE_OPTION_PRIVATE | + NSLINKMODULE_OPTION_RETURN_ON_ERROR); + + if (ret == NULL) { + int err; + const char *fname, *errt; + NSLinkEditErrors c; + NSLinkEditError(&c, &err, &fname, &errt); + post("link error %d %s %s", err, fname, errt); + return 0; + } s = NSLookupSymbolInModule(ret, symname);
if (s)