On Mar 15, 2013, at 5:55 PM, Jorge Arévalo wrote: >>>> http://www.gnu.org/software/gnulib/manual/html_node/environ.html suggests >>>> me the following patch. Please test and report if it works. >>>> >>>> Index: port/cpl_spawn.cpp >>>> =================================================================== >>>> --- port/cpl_spawn.cpp (revision 25734) >>>> +++ port/cpl_spawn.cpp (working copy) >>>> @@ -461,8 +461,13 @@ >>>> #include <signal.h> >>>> #ifdef HAVE_POSIX_SPAWNP >>>> #include <spawn.h> >>>> +#ifdef MACOSX_FRAMEWORK >>>> +#include <crt_externs.h> >>>> +#define environ (*_NSGetEnviron()) >>>> +#else >>>> extern char** environ; >>>> #endif >>>> +#endif >>>> >>>> #if 0 >>>> /************************************************************************ >>>> / >>>> >>>>> Thanks in advance, >>> >>> Thanks! We got to the same solution :-). I've found the same patch in >>> MacPorts >>> (http://trac.macports.org/browser/trunk/dports/lang/hugs98/files/patch-pac >>> kages-base-include-HsBase.h.diff?rev=81676). It worked. >>> >>> I could create a new ticket and attach the patch file. Is it ok? >> >> Or you can commit it directly as you wish since you've commit rights. But >> the >> patch are not strictly identical. I tested #ifdef MACOSX_FRAMEWORK whereas >> the >> link you provide test #ifdef __APPLE__ . Not sure if they are equivalent in >> the GDAL context. Perhaps #ifdef __APPLE__ is better and MACOSX_FRAMEWORK >> too >> specific to a special flavour of building a shared lib ? Just guessing >> blindly... > > Honestly, I'm not sure. > > __APPLE__ is a gcc predefined macro (as listed here > http://sourceforge.net/p/predef/wiki/OperatingSystems/), and MACOSX_FRAMEWORK > is defined by GDAL in configure time if the user specified > --with-macosx-framework and 'Darwin' is present executing uname. That option > tells GDAL to be constructed as a Mac OS X Framework. > > Both macros are used in the sources. Why do we have 2 options to the same > thing? Or am I wrong and they have different purposes? > __APPLE__ is standard for OS X, this is what should be used. MACOSX_FRAMEWORK is internal for GDAL, and is for when GDAL is configured to make a framework instead of a standard dylib. Both configurations use all the same system headers and APIs otherwise. (Note that the "dylib" in the error has nothing to do with a non-framework build, the basic compilation always produces this internally and it is at installation that it is made into a framework if requested.)
----- William Kyngesburye <kyngchaos*at*kyngchaos*dot*com> http://www.kyngchaos.com/ "Those people who most want to rule people are, ipso-facto, those least suited to do it." - A rule of the universe, from the HitchHiker's Guide to the Galaxy _______________________________________________ gdal-dev mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/gdal-dev
