
In boost/libs/python/src/converter/registry.cpp, I found:
#if defined(__APPLE__) && defined(__MACH__) && defined(__GNUC__) \ && __GNUC__ == 3 && __GNUC_MINOR__ <= 4 && !defined(__APPLE_CC__) # define BOOST_PYTHON_CONVERTER_REGISTRY_APPLE_MACH_WORKAROUND #endif
I have no idea what defining that big long symbol does, but I think that the conditionals are incorrect. <http://developer.apple.com/technotes/tn2002/tn2071.html> says: __APPLE__ This macro is defined in any Apple computer. __MACH__ This macro is defined if Mach system calls are supported. __APPLE_CC__ This macro is set to an integer that represents the version number of the compiler. This lets you distinguish, for example, between compilers based on the same version of GCC, but with different bug fixes or features. Larger values denote later compilers. I can't see any case where __APPLE__ and __GNUC__ are defined, and __APPLE_CC__ is not defined. Metrowerks? ==> No __GNUC__ Not on a Mac? ==> No __APPLE__ __APPLE_CC__ was defined for Apple-released versions of GCC, starting with 2.95.2 (so says Chris Espinosa at Apple). More historical info is at <http://developer.apple.com/releasenotes/DeveloperTools/GCC2.html> So, I think that that whole #if expression always evaluates to "false". -- -- Marshall Marshall Clow Idio Software <mailto:marshall@idio.com> It is by caffeine alone I set my mind in motion. It is by the beans of Java that thoughts acquire speed, the hands acquire shaking, the shaking becomes a warning. It is by caffeine alone I set my mind in motion.

--- Marshall Clow <marshall@idio.com> wrote:
In boost/libs/python/src/converter/registry.cpp, I found:
#if defined(__APPLE__) && defined(__MACH__) && defined(__GNUC__) \ && __GNUC__ == 3 && __GNUC_MINOR__ <= 4 && !defined(__APPLE_CC__) # define BOOST_PYTHON_CONVERTER_REGISTRY_APPLE_MACH_WORKAROUND #endif
I have no idea what defining that big long symbol does,
I put it in to work around a nasty static initialization bug. I had not clue what I was doing but thanks to the bad hack enabled by BOOST_PYTHON_CONVERTER_REGISTRY_APPLE_MACH_WORKAROUND I got Boost.Python to work under OS X 10.2 eventually. I think I was using gcc 3.3 from gcc.gnu.org at the time.
but I think that the conditionals are incorrect.
I am sure they are not pretty but they certainly did the job.
So, I think that that whole #if expression always evaluates to "false".
Nope. Install the old gcc 3.3 from gcc.gnu.org to verify. See also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14232 How did you stumble over my hack? Does it cause any problems? Cheers, Ralf __________________________________ Do you Yahoo!? Yahoo! Mail - Easier than ever with enhanced search. Learn more. http://info.mail.yahoo.com/mail_250

At 9:46 PM -0800 2/20/05, Ralf W. Grosse-Kunstleve wrote:
--- Marshall Clow <marshall@idio.com> wrote:
In boost/libs/python/src/converter/registry.cpp, I found:
#if defined(__APPLE__) && defined(__MACH__) && defined(__GNUC__) \ && __GNUC__ == 3 && __GNUC_MINOR__ <= 4 && !defined(__APPLE_CC__) # define BOOST_PYTHON_CONVERTER_REGISTRY_APPLE_MACH_WORKAROUND #endif
but I think that the conditionals are incorrect.
I am sure they are not pretty but they certainly did the job.
So, I think that that whole #if expression always evaluates to "false".
Nope. Install the old gcc 3.3 from gcc.gnu.org to verify.
See also:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14232
Cheers, Ralf
Gotcha. A gcc for the Mac that wasn't from Apple. That's the case that I didn't think of. Sorry about that.
How did you stumble over my hack? Does it cause any problems?
There's a bad #if __APPLE__ in limits.hpp, (which is causing the regressions to fail) so I was looking for other apple-specific code. It doesn't cause any problems, but I didn't think it did anything. It seems I was wrong. -- -- Marshall Marshall Clow Idio Software <mailto:marshall@idio.com> It is by caffeine alone I set my mind in motion. It is by the beans of Java that thoughts acquire speed, the hands acquire shaking, the shaking becomes a warning. It is by caffeine alone I set my mind in motion.
participants (2)
-
Marshall Clow
-
Ralf W. Grosse-Kunstleve