I have a patch to submit that fixes the following error when building against 
OSX 10.6.2.  I am building the 2.9.6 dev tag, but I also checked it against 
trunk.  I am building fat binaries (i386 and x86_64):

/OpenSceneGraph-2.9.6/include/OpenThreads/Atomic:70: error: 'int32_t' does not 
name a type
/OpenSceneGraph-2.9.6/include/OpenThreads/Atomic: In constructor 
'OpenThreads::Atomic::Atomic(unsigned int)':
/OpenSceneGraph-2.9.6/include/OpenThreads/Atomic:50: error: class 
'OpenThreads::Atomic' does not have any field named '_value'

--- Atomic.orig 2009-12-15 09:53:51.000000000 -0800
+++ Atomic      2009-12-15 09:55:02.000000000 -0800
@@ -17,17 +17,17 @@
 #include <OpenThreads/Config>
 #include <OpenThreads/Exports>
 
-#if defined(_OPENTHREADS_ATOMIC_USE_GCC_BUILTINS) && defined(__i386__)
-#define _OPENTHREADS_ATOMIC_USE_LIBRARY_ROUTINES
+#if defined(_OPENTHREADS_ATOMIC_USE_BSD_ATOMIC)
+# include <libkern/OSAtomic.h>
+# define _OPENTHREADS_ATOMIC_USE_LIBRARY_ROUTINES
+#elif defined(_OPENTHREADS_ATOMIC_USE_GCC_BUILTINS) && defined(__i386__)
+# define _OPENTHREADS_ATOMIC_USE_LIBRARY_ROUTINES
 #elif defined(_OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED)
-#define _OPENTHREADS_ATOMIC_USE_LIBRARY_ROUTINES
+# define _OPENTHREADS_ATOMIC_USE_LIBRARY_ROUTINES
 #elif defined(_OPENTHREADS_ATOMIC_USE_SUN)
 # include <atomic.h>
 # include "Mutex"
 # include "ScopedLock"
-#elif defined(_OPENTHREADS_ATOMIC_USE_BSD_ATOMIC)
-# include <libkern/OSAtomic.h>
-# define _OPENTHREADS_ATOMIC_USE_LIBRARY_ROUTINES
 #elif defined(_OPENTHREADS_ATOMIC_USE_MUTEX)
 # include "Mutex"
 # include "ScopedLock"

The problem is that there were two clauses in these conditionals that applied 
to my configuration.  I moved the more-specific case, 
_OPENTHREADS_ATOMIC_USE_BSD_ATOMIC, ahead of the more general 
_OPENTHREADS_ATOMIC_USE_GCC_BUILTINS && __i386__.  This allowed it to correctly 
pull in <libkern/OSAtomic.h> which subsequently pulled in <stdint.h> to define 
int32_t.

I don't know for sure, but I guess there might be a case where a similar 
situation could happen with the *_USE_SUN clause where a Sun system might also 
take the GCC/i386 path instead.

Thanks
Chuck Seberino
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to