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