diff --git a/build/jam/HeadersRules b/build/jam/HeadersRules index 741342fcc8..f0b43ed0f3 100644 --- a/build/jam/HeadersRules +++ b/build/jam/HeadersRules @@ -365,8 +365,11 @@ rule FStandardHeaders kernel media mail midi midi2 net opengl storage support translation ; + # GCC headers + local headers = $(HAIKU_GCC_HEADERS_DIR) ; + # Use headers directory, to allow to do things like include - local headers = [ FDirName $(HAIKU_TOP) headers ] ; + headers += [ FDirName $(HAIKU_TOP) headers ] ; # Use posix headers directory headers += [ FDirName $(HAIKU_TOP) headers posix ] ; @@ -392,15 +395,6 @@ rule FStandardHeaders headers += [ FDirName $(HAIKU_TOP) headers cpp ] ; } - # The compiler dependent headers. - # TODO: Actually these directory should be listed before the posix and cpp - # directories, since the headers found here are supposed to override some of - # the headers in the latter directories. Unfortunately some of our headers - # are a bit messy (e.g. stddef.h) and using the compiler headers causes - # trouble when using different compilers (gcc 2 vs. gcc 4) and different - # host platforms (BeOS vs. Linux). - headers += $(HAIKU_GCC_HEADERS_DIR) ; - return $(headers) ; } diff --git a/headers/posix/size_t.h b/headers/posix/size_t.h index ad466389c1..d76a0b2d01 100644 --- a/headers/posix/size_t.h +++ b/headers/posix/size_t.h @@ -1,7 +1,13 @@ +/* + * Copyright 2008, Haiku Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ #ifndef _SIZE_T_H_ #define _SIZE_T_H_ -typedef unsigned long size_t; -typedef signed long ssize_t; +#include + +// TODO: ATM gcc's stddef.h defines ssize_t for BeOS.h. We should fix this. +//typedef long signed int ssize_t; #endif /* _SIZE_T_H_ */ diff --git a/headers/posix/stddef.h b/headers/posix/stddef.h deleted file mode 100644 index ce7ec9ca6e..0000000000 --- a/headers/posix/stddef.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _STDDEF_H_ -#define _STDDEF_H_ -/* -** Distributed under the terms of the OpenBeOS License. -*/ -#include - -#if defined(__GNUC__) && __GNUC__ > 3 -#define offsetof(type,member) __builtin_offsetof(type, member) -#else -#define offsetof(type,member) ((size_t)&((type*)0)->member) -#endif - -typedef long ptrdiff_t; - -#include -#include - -#endif /* _STDDEF_H_ */ diff --git a/headers/posix/wchar.h b/headers/posix/wchar.h index 404dc19f4e..6aa23938f8 100644 --- a/headers/posix/wchar.h +++ b/headers/posix/wchar.h @@ -7,11 +7,22 @@ #ifndef _WCHAR_H #define _WCHAR_H -#include +#include #include +// stddef.h is not supposed to define wint_t, but gcc 2.95.3's one does. +// In all other cases we will do that. +#ifndef _WINT_T #define _WINT_T -typedef unsigned int wint_t; + +#ifndef __WINT_TYPE__ +#define __WINT_TYPE__ unsigned int +#endif + +typedef __WINT_TYPE__ wint_t; + +#endif // _WINT_T + typedef int wctype_t; typedef struct { @@ -19,7 +30,6 @@ typedef struct { wint_t __value; } mbstate_t; -#include #ifdef __cplusplus extern "C" { diff --git a/headers/posix/wchar_t.h b/headers/posix/wchar_t.h index 5db297e8f1..9572a62dc1 100644 --- a/headers/posix/wchar_t.h +++ b/headers/posix/wchar_t.h @@ -1,15 +1,7 @@ /* - * Copyright (C) 2002 Marcus Overhagen - * All rights reserved. - * - * Distributed under the terms of the MIT license + * Copyright 2008, Haiku Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. */ -#ifndef _WCHAR_T_H -#define _WCHAR_T_H - -#if !defined(__cplusplus) || __GNUC__ < 3 -typedef unsigned short wchar_t; -#endif - -#endif /* _WCHAR_T_H */ +// Include GCC's stddef.h. It defines wchar_t. +#include