summaryrefslogtreecommitdiff
path: root/dln.c
diff options
context:
space:
mode:
authorknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-10-17 16:13:44 +0000
committerknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-10-17 16:13:44 +0000
commit6dfb5aa6ac5c9432ad7a7b8bebda4916004051b6 (patch)
treef62049451f68c0a2ae407349faa4a9f53e61e0df /dln.c
parent9dce0d8f0b1cd52fee0a9ddad61fa63d8c83c829 (diff)
* hash.c, eval.c: Use (*_NSGetEnviron()) instead of environ on
Darwin for namespace cleanness. [ruby-core:00537] * dln.c (dln_load): Fix Darwin support that has been disabled and switch to using it on Darwin instead of the system dlopen(). [ruby-core:00541] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'dln.c')
-rw-r--r--dln.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/dln.c b/dln.c
index 0d923f5..3bb37f5 100644
--- a/dln.c
+++ b/dln.c
@@ -90,7 +90,7 @@ char *getenv();
int eaccess();
-#if defined(HAVE_DLOPEN) && !defined(USE_DLN_A_OUT) && !defined(_AIX)
+#if defined(HAVE_DLOPEN) && !defined(USE_DLN_A_OUT) && !defined(_AIX) && !defined(__APPLE__)
/* dynamic load with dlopen() */
# define USE_DLN_DLOPEN
#endif
@@ -1429,12 +1429,9 @@ dln_load(file)
NSLinkModule(obj_file, file, NSLINKMODULE_OPTION_BINDNOW);
/* lookup the initial function */
- /*NSIsSymbolNameDefined require function name without "_" */
- if(NSIsSymbolNameDefined(buf + 1)) {
+ if(!NSIsSymbolNameDefined(buf)) {
rb_loaderror("Failed to lookup Init function %.200s",file);
- }
-
- /* NSLookupAndBindSymbol require function name with "_" !! */
+ }
init_fct = NSAddressOfSymbol(NSLookupAndBindSymbol(buf));
(*init_fct)();