From 41172c04306098ab9ecba8b48d7be47c3911a662 Mon Sep 17 00:00:00 2001 From: Tomas Wilhelmsson Date: Mon, 23 Feb 2009 08:11:29 -0700 Subject: 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 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 +#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 338246bb59..94bec4a088 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 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 -- cgit v1.2.3