From: "djk (Daniel Kopetzky)" Date: 2012-06-13T11:25:11+09:00 Subject: [ruby-core:45615] [ruby-trunk - Bug #6576] shared library references _environ macosx Lion Issue #6576 has been updated by djk (Daniel Kopetzky). I'll investigate further. Had recently enabled ruby scripting in vim 7.3.548 and I got the following message % /usr/local/bin/vim dyld: Symbol not found: _environ Referenced from: /usr/local/lib/libruby.2.0.0.dylib Expected in: flat namespace in /usr/local/lib/libruby.2.0.0.dylib Trace/BPT trap Thats when I went reading your code / reading apple documentation and saw how hash.c was avoiding direct reference to environ but missing/setproctitle.c wasn't doing anything special. % otool -L /usr/local/bin/vim src/vim: /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0) /usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0) /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0) /usr/local/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.1.0) /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 17.0.0) /usr/local/lib/libruby.2.0.0.dylib (compatibility version 2.0.0, current version 2.0.0) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0) /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 53.0.0) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 635.21.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 833.25.0) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1138.47.0) ---------------------------------------- Bug #6576: shared library references _environ macosx Lion https://bugs.ruby-lang.org/issues/6576#change-27211 Author: djk (Daniel Kopetzky) Status: Feedback Priority: Normal Assignee: kosaki (Motohiro KOSAKI) Category: core Target version: 2.0.0 ruby -v: ruby 2.0.0dev (2012-06-10) [x86_64-darwin11.4.0] The code in missing/setproctitle.c references the global variable environ. The environ global variable isn't allowed in mac dylib shared libraries. Code trying to use ruby-2 as a shared library will fail. % nm libruby.dylib|grep _environ U _environ The code in hash.c has #ifdef __APPLE__ sections that appear to access the environment using Apple's suggested _NSGetEnviron() routine. -- http://bugs.ruby-lang.org/