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)