Mesa (master): mesa: fixes for building on Haiku

Brian Paul brianp at kemper.freedesktop.org
Mon Feb 23 15:12:06 UTC 2009


Module: Mesa
Branch: master
Commit: 41172c04306098ab9ecba8b48d7be47c3911a662
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=41172c04306098ab9ecba8b48d7be47c3911a662

Author: Tomas Wilhelmsson <tomas.wilhelmsson at gmail.com>
Date:   Mon Feb 23 08:11:29 2009 -0700

mesa: fixes for building on Haiku

---

 src/mesa/glapi/glthread.h  |   12 ++++++++++++
 src/mesa/main/dlopen.c     |    5 ++++-
 src/mesa/main/imports.h    |    3 ++-
 src/mesa/x86/gen_matypes.c |    4 ++--
 4 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/src/mesa/glapi/glthread.h b/src/mesa/glapi/glthread.h
index 4da31e5..dfe09a9 100644
--- a/src/mesa/glapi/glthread.h
+++ b/src/mesa/glapi/glthread.h
@@ -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;
diff --git a/src/mesa/main/dlopen.c b/src/mesa/main/dlopen.c
index 338246b..94bec4a 100644
--- a/src/mesa/main/dlopen.c
+++ b/src/mesa/main/dlopen.c
@@ -36,7 +36,10 @@
 #if defined(_WIN32)
 #include <windows.h>
 #endif
-
+#if defined(__HAIKU__)
+/* for NULL */
+#include <stdio.h>
+#endif
 
 /**
  * Wrapper for dlopen().
diff --git a/src/mesa/main/imports.h b/src/mesa/main/imports.h
index d28860f..4192f03 100644
--- a/src/mesa/main/imports.h
+++ b/src/mesa/main/imports.h
@@ -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;
diff --git a/src/mesa/x86/gen_matypes.c b/src/mesa/x86/gen_matypes.c
index afb4b11..8c690b4 100644
--- a/src/mesa/x86/gen_matypes.c
+++ b/src/mesa/x86/gen_matypes.c
@@ -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




More information about the mesa-commit mailing list