mesa: fixes for building on Haiku
authorTomas Wilhelmsson <tomas.wilhelmsson@gmail.com>
Mon, 23 Feb 2009 15:11:29 +0000 (08:11 -0700)
committerBrian Paul <brianp@vmware.com>
Mon, 23 Feb 2009 15:11:29 +0000 (08:11 -0700)
src/mesa/glapi/glthread.h
src/mesa/main/dlopen.c
src/mesa/main/imports.h
src/mesa/x86/gen_matypes.c

index 4da31e5738e5687feb8f40a1a334453329246ee3..dfe09a9d59f8a77d7e9f1a4ab4d6320db7bc8f4d 100644 (file)
@@ -265,9 +265,21 @@ typedef xmutex_rec _glthread_Mutex;
  */
 #ifdef BEOS_THREADS
 
+/* Problem with OS.h and this file on haiku */
+#ifndef __HAIKU__
 #include <kernel/OS.h>
+#endif
+
 #include <support/TLS.h>
 
+/* The only two typedefs required here
+ * this is cause of the OS.h problem
+ */
+#ifdef __HAIKU__
+typedef int32 thread_id;
+typedef int32 sem_id;
+#endif
+
 typedef struct {
    int32        key;
    int          initMagic;
index 338246bb59b8bb4c436444876c7677299c67f3e5..94bec4a088769ca82932640fbd9a7c3c7a3ba9fc 100644 (file)
 #if defined(_WIN32)
 #include <windows.h>
 #endif
-
+#if defined(__HAIKU__)
+/* for NULL */
+#include <stdio.h>
+#endif
 
 /**
  * Wrapper for dlopen().
index d28860f1702e9552d4e9f942d4514800b0b6ff4a..4192f037c00b2fe7c4da9ec7562fa950248fad60 100644 (file)
@@ -265,7 +265,8 @@ static INLINE int iround(float f)
 }
 #define IROUND(x)  iround(x)
 #elif defined(USE_X86_ASM) && defined(__GNUC__) && defined(__i386__) && \
-                       (!defined(__BEOS__) || (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)))
+                       (!(defined(__BEOS__) || defined(__HAIKU__))  || \
+                       (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)))
 static INLINE int iround(float f)
 {
    int r;
index afb4b11529f99df5f53c415609b233cd1f0ec91b..8c690b4f882e624990fe272e131315e9538887fb 100644 (file)
@@ -61,7 +61,7 @@ do {                                                                  \
    printf( "\n" );                                                     \
 } while (0)
 
-#if defined(__BEOS__) || defined(_LP64)
+#if defined(__BEOS__) || defined(__HAIKU__) || defined(_LP64)
 #define OFFSET( s, t, m )                                              \
    printf( "#define %s\t%ld\n", s, offsetof( t, m ) );
 #else
@@ -69,7 +69,7 @@ do {                                                                  \
    printf( "#define %s\t%d\n", s, offsetof( t, m ) );
 #endif
 
-#if defined(__BEOS__) || defined(_LP64)
+#if defined(__BEOS__) || defined(__HAIKU__) || defined(_LP64)
 #define SIZEOF( s, t )                                                 \
    printf( "#define %s\t%ld\n", s, sizeof(t) );
 #else