|
|
Experimental Physics and
| ||||||||||||||
|
|
Hello, I ran into a missing symbol in EPICS base on Mac OS X. Starting in Mac OS X 10.5 (Leopard), shared libraries and bundles don't have direct access to environ (man environ). Shared libraries and bundles don't have direct access to environ, which is only available to the loader ld(1) when a complete program is being linked. The environment routines can still be used, but if direct access to environ is needed, the _NSGetEnviron() routine, defined in <crt_externs.h>, can be used to retrieve the address of environ at runtime. http://developer.apple.com/documentation/Darwin/Reference/Manpages/man7/environ.7.html I copied libCom's osdEnv.c to base/src/libCom/osi/os/Darwin and added the following: /* Starting in Mac OS X 10.5 (Leopard), shared libraries and * bundles don't have direct access to environ (man environ). * * Define environ as (*_NSGetEnviron()) */ #include <crt_externs.h> #define environ (*_NSGetEnviron()) Everything seems to work fine with this change and it has been committed to the trunk and R3-14-2_branch by Eric Norum. Stephen
| ||||||||||||||
| ANJ, 02 Sep 2010 |
· EPICSv4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |