[PD-cvs] packages/patches/darwin darwin_dlopen.patch,NONE,1.1

Hans-Christoph Steiner eighthave at users.sourceforge.net
Sat Nov 26 02:51:37 CET 2005


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)





More information about the Pd-cvs mailing list