diff options
author | Tomas Wilhelmsson <tomas.wilhelmsson@gmail.com> | 2009-02-23 08:11:29 -0700 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2009-02-23 08:11:29 -0700 |
commit | 41172c04306098ab9ecba8b48d7be47c3911a662 (patch) | |
tree | a324979d3849b9376a603aed930fb25cee9d45b0 | |
parent | d265706cd3849679e543797b4ad4edf463cd4586 (diff) |
mesa: fixes for building on Haiku
-rw-r--r-- | src/mesa/glapi/glthread.h | 12 | ||||
-rw-r--r-- | src/mesa/main/dlopen.c | 5 | ||||
-rw-r--r-- | src/mesa/main/imports.h | 3 | ||||
-rw-r--r-- | 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 4da31e5738..dfe09a9d59 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 338246bb59..94bec4a088 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 d28860f170..4192f037c0 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 afb4b11529..8c690b4f88 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 |