Patches item #1083495, was opened at 2004-12-11 08:25 Message generated for change (Comment added) made by millerpuckette You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=478072&aid=1083495...
Category: puredata Group: bugfix Status: Open Resolution: None Priority: 5 Submitted By: Jamie Tittle (tigital) Assigned to: Nobody/Anonymous (nobody) Summary: s_loader.c: osx external loading
Initial Comment: ...years ago, the NSLINKMODULE_OPTION_PRIVATE flag was introduced to NSLinkModule() in an effort to prevent pd from crashing when a library is loaded that has duplicate symbols to an already loaded library...sure, it's desirable to not crash, but this flag has the side effect of artificially partitioning the loaded symbols such that we can't access one library easily from another...
...so, this patch removes the PRIVATE flag and adds another RETURN_ON_ERROR flag, which works as advertised...I've also added a small bit of code to spit out some info about what the error was, and in which file...
...another point to consider is the linker flag -flat_namespace, and whether it is needed at all anymore (the default would be -twolevel_namespace)...
----------------------------------------------------------------------
Comment By: Miller Puckette (millerpuckette)
Date: 2005-05-17 21:37
Message: Logged In: YES user_id=313747
Took it (0.39test2)
----------------------------------------------------------------------
Comment By: Hans-Christoph Steiner (eighthave) Date: 2005-04-12 21:03
Message: Logged In: YES user_id=27104
Check out externals/build/darwin/makefile. Its been using -bundle -bundle_loader ../path/to/pd successfully for a while now.
externals/OSCx is using -bundle_loader.. but has -flat_namespace, so maybe that should be changed as well.
----------------------------------------------------------------------
Comment By: Jamie Tittle (tigital) Date: 2005-04-12 10:56
Message: Logged In: YES user_id=634044
...after further exploration with linking and loading other externals, I think we can leave -flat_namespace behind and just use something like the following:
PREFIX = $(HOME)/pd-0.38-4/ LFLAGS = -bundle -bundle_loader $(PREFIX)/bin/pd
...notice that we don't need to say "-two_level_namespace", because it is default...without the -bundle_loader bit, you get all kinds of problems with undefined symbols...
----------------------------------------------------------------------
You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=478072&aid=1083495...