gallium: Provide alternative stdint.h and stdbool.h C99 headers, instead of ad-hoc definitions.

Everybody is using the C99's integer types. Everybody except Microsoft,
which in turns means everybody is including their own definitions of C99
integer types for MSVC, causing duplicate definitions when linking two
projects. This is the case of building Gallium and LLVM with MSVC.

Shipping alternative stdint.h and stdbool.h headers for MSVC allows us
to share a single definition. It also removes clutter from the Gallium
headers.
This commit is contained in:
José Fonseca
2010-01-10 10:36:35 +00:00
parent 0b7b76fb16
commit dc6bcc92ee
5 changed files with 173 additions and 34 deletions

View File

@@ -52,45 +52,15 @@
#endif /* _MSC_VER */
#if defined(_MSC_VER)
typedef __int8 int8_t;
typedef unsigned __int8 uint8_t;
typedef __int16 int16_t;
typedef unsigned __int16 uint16_t;
#ifndef __eglplatform_h_
typedef __int32 int32_t;
#endif
typedef unsigned __int32 uint32_t;
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
#if defined(_WIN64)
typedef __int64 intptr_t;
typedef unsigned __int64 uintptr_t;
#else
typedef __int32 intptr_t;
typedef unsigned __int32 uintptr_t;
#endif
#define INT64_C(__val) __val##i64
#define UINT64_C(__val) __val##ui64
#ifndef __cplusplus
#define false 0
#define true 1
#define bool _Bool
typedef int _Bool;
#define __bool_true_false_are_defined 1
#endif /* !__cplusplus */
#else
/*
* Alternative stdint.h and stdbool.h headers are supplied in include/c99 for
* systems that lack it.
*/
#ifndef __STDC_LIMIT_MACROS
#define __STDC_LIMIT_MACROS 1
#endif
#include <stdint.h>
#include <stdbool.h>
#endif
#ifndef __HAIKU__