diff --git a/src/mesa/glapi/glthread.h b/src/mesa/glapi/glthread.h index 4da31e5738e..dfe09a9d59f 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 +#endif + #include +/* 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 338246bb59b..94bec4a0887 100644 --- a/src/mesa/main/dlopen.c +++ b/src/mesa/main/dlopen.c @@ -36,7 +36,10 @@ #if defined(_WIN32) #include #endif - +#if defined(__HAIKU__) +/* for NULL */ +#include +#endif /** * Wrapper for dlopen(). diff --git a/src/mesa/main/imports.h b/src/mesa/main/imports.h index d28860f1702..4192f037c00 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 afb4b11529f..8c690b4f882 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