added 6 changesets to branch 'refs/remotes/mmadia-github/separate-build-environment' old head: 37dfa8bbb433c915e0e71491515b6eb0a5da5d64 new head: 13c64484bff573f4d4627fac69b2baea30035622 ---------------------------------------------------------------------------- a4c4024: Pure compiler headers can be included as is. float.h is a pure compiler header. Removed completed TODO. 612bede: Defined _HAIKU_BUILD_DECLARE_CONSTANT Constant declarations must be handled like function prototypes. Added a note that the macro is untested. b3c7301: Updated to use _HAIKU_BUILD_DECLARE_CONSTANT. Note: The unprefixed types still need to be defined in the ifndef _HAIKU_BUILD_LIBROOT_FUNCTION_WRAPPER block. 906b91c: Add target_inttypes.h ca8bd52: Added a TODO. 13c6448: Added the unprefixed types. [ Matt Madia <mattmadia@xxxxxxxxx> ] ---------------------------------------------------------------------------- 4 files changed, 531 insertions(+), 5 deletions(-) headers/build/HaikuBuild.h | 11 + .../build/os_target/support/target_SupportDefs.h | 115 ++++- headers/build/posix_target/target_inttypes.h | 399 ++++++++++++++++ headers/build/posix_target/target_limits.h | 11 +- ############################################################################ Commit: a4c402409e5464796dcf7e571dfbf64f4dd69a11 Author: Matt Madia <mattmadia@xxxxxxxxx> Date: Fri Aug 3 08:14:36 2012 UTC Pure compiler headers can be included as is. float.h is a pure compiler header. Removed completed TODO. ---------------------------------------------------------------------------- diff --git a/headers/build/posix_target/target_limits.h b/headers/build/posix_target/target_limits.h index 5119881..2ca8b7e 100644 --- a/headers/build/posix_target/target_limits.h +++ b/headers/build/posix_target/target_limits.h @@ -6,11 +6,9 @@ #define _LIBC_LIMITS_H_ /* Note: The header guard is checked in gcc's limits.h. */ -// TODO: #8730 -- create header from headers/config/types.h #include <config_target/target_types.h> -// TODO: #8730 -- create header from build/gcc-2.95.3/float.h -#include <target_float.h> /* for DBL_DIG, FLT_DIG, etc */ +#include <float.h> /* for DBL_DIG, FLT_DIG, etc */ #define _HAIKU_BUILD_LONGLONG_MIN (-9223372036854775807LL - 1) /* these are Be specific */ #define _HAIKU_BUILD_LONGLONG_MAX (9223372036854775807LL) ############################################################################ Commit: 612bede9ae55a385afd84168f6813351ef0a3556 Author: Matt Madia <mattmadia@xxxxxxxxx> Date: Fri Aug 3 10:15:16 2012 UTC Defined _HAIKU_BUILD_DECLARE_CONSTANT Constant declarations must be handled like function prototypes. Added a note that the macro is untested. ---------------------------------------------------------------------------- diff --git a/headers/build/HaikuBuild.h b/headers/build/HaikuBuild.h index 1df9486..d8ddfd9 100644 --- a/headers/build/HaikuBuild.h +++ b/headers/build/HaikuBuild.h @@ -24,5 +24,16 @@ __asm__(_HAIKU_BUILD_ASMNAME("_haiku_build_" #name)); #endif +// NOTE: #8730 -- _HAIKU_BUILD_DECLARE_CONSTANT is untested. +#ifdef _HAIKU_BUILD_LIBROOT_FUNCTION_WRAPPER +# define _HAIKU_BUILD_DECLARE_CONSTANT(type, name) \ + extern type _haiku_build##name; \ +#else +# define _HAIKU_BUILD_DECLARE_CONSTANT(type, name) \ + extern type _haiku_build##name; \ + extern type name \ + __asm__(_HAIKU_BUILD_ASMNAME("_haiku_build" #name)); +#endif + #endif /* _HAIKU_BUILD_H */ ############################################################################ Commit: b3c73016953dcaa8f2d205fdd8381e00165e18e1 Author: Matt Madia <mattmadia@xxxxxxxxx> Date: Fri Aug 3 10:16:15 2012 UTC Updated to use _HAIKU_BUILD_DECLARE_CONSTANT. Note: The unprefixed types still need to be defined in the ifndef _HAIKU_BUILD_LIBROOT_FUNCTION_WRAPPER block. ---------------------------------------------------------------------------- diff --git a/headers/build/os_target/support/target_SupportDefs.h b/headers/build/os_target/support/target_SupportDefs.h index ef5398d..6761c25 100644 --- a/headers/build/os_target/support/target_SupportDefs.h +++ b/headers/build/os_target/support/target_SupportDefs.h @@ -156,8 +156,7 @@ typedef _haiku_build_generic_addr_t _HAIKU_BUILD_IDENTIFIER(generic_size_t); /* Empty string ("") */ #ifdef __cplusplus -// NOTE: #8730 -- does this become _HAIKU_BUILD_B_EMPTY_STRING ? -extern const char *B_EMPTY_STRING; +_HAIKU_BUILD_DECLARE_CONSTANT(const char*, B_EMPTY_STRING) #endif ############################################################################ Commit: 906b91c1d501a478062aecc722d347317f3c4ed9 Author: Matt Madia <mattmadia@xxxxxxxxx> Date: Fri Aug 3 10:18:02 2012 UTC Add target_inttypes.h ---------------------------------------------------------------------------- diff --git a/headers/build/posix_target/target_inttypes.h b/headers/build/posix_target/target_inttypes.h new file mode 100644 index 0000000..2bb86ae --- /dev/null +++ b/headers/build/posix_target/target_inttypes.h @@ -0,0 +1,399 @@ +/* + * Copyright 2002-2012, Haiku, Inc. All rights reserved. + * Distributed under the terms of the MIT License. + */ +#ifndef _INTTYPES_H_ +#define _INTTYPES_H_ + + +#include <target_stdint.h> + +typedef struct { + intmax_t _HAIKU_BUILD_IDENTIFIER(quot); /* quotient */ + intmax_t _HAIKU_BUILD_IDENTIFIER(rem); /* remainder */ +} _HAIKU_BUILD_IDENTIFIER(imaxdiv_t); + +// NOTE: #8730 does __STDC_FORMAT_MACROS need to be _HAIKU_BUILD_ prefixed? +#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) +/* fprintf() macros for signed integers */ +# define _HAIKU_BUILD_PRId8 "d" +# define _HAIKU_BUILD_PRIdLEAST8 "d" +# define _HAIKU_BUILD_PRIdFAST8 "d" +# define _HAIKU_BUILD_PRIi8 "i" +# define _HAIKU_BUILD_PRIiLEAST8 "i" +# define _HAIKU_BUILD_PRIiFAST8 "i" + +# define _HAIKU_BUILD_PRId16 "d" +# define _HAIKU_BUILD_PRIdLEAST16 "d" +# define _HAIKU_BUILD_PRIdFAST16 "d" +# define _HAIKU_BUILD_PRIi16 "i" +# define _HAIKU_BUILD_PRIiLEAST16 "i" +# define _HAIKU_BUILD_PRIiFAST16 "i" + +# define _HAIKU_BUILD_PRId32 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_32 "d" +# define _HAIKU_BUILD_PRIdLEAST32 _HAIKU_BUILD_PRId32 +# define _HAIKU_BUILD_PRIdFAST32 _HAIKU_BUILD_PRId32 +# define _HAIKU_BUILD_PRIi32 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_32 "i" +# define _HAIKU_BUILD_PRIiLEAST32 _HAIKU_BUILD_PRIi32 +# define _HAIKU_BUILD_PRIiFAST32 _HAIKU_BUILD_PRIi32 + +# define _HAIKU_BUILD_PRId64 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_64 "d" +# define _HAIKU_BUILD_PRIdLEAST64 _HAIKU_BUILD_PRId64 +# define _HAIKU_BUILD_PRIdFAST64 _HAIKU_BUILD_PRId64 +# define _HAIKU_BUILD_PRIi64 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_64 "i" +# define _HAIKU_BUILD_PRIiLEAST64 _HAIKU_BUILD_PRIi64 +# define _HAIKU_BUILD_PRIiFAST64 _HAIKU_BUILD_PRIi64 + +# define _HAIKU_BUILD_PRIdMAX _HAIKU_BUILD_PRId64 +# define _HAIKU_BUILD_PRIdPTR _HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "d" +# define _HAIKU_BUILD_PRIiMAX _HAIKU_BUILD_PRIi64 +# define _HAIKU_BUILD_PRIiPTR _HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "i" + +/* fprintf() macros for unsigned integers */ +# define _HAIKU_BUILD_PRIu8 "u" +# define _HAIKU_BUILD_PRIuLEAST8 "u" +# define _HAIKU_BUILD_PRIuFAST8 "u" +# define _HAIKU_BUILD_PRIo8 "o" +# define _HAIKU_BUILD_PRIoLEAST8 "o" +# define _HAIKU_BUILD_PRIoFAST8 "o" +# define _HAIKU_BUILD_PRIx8 "x" +# define _HAIKU_BUILD_PRIxLEAST8 "x" +# define _HAIKU_BUILD_PRIxFAST8 "x" +# define _HAIKU_BUILD_PRIX8 "X" +# define _HAIKU_BUILD_PRIXLEAST8 "X" +# define _HAIKU_BUILD_PRIXFAST8 "X" + +# define _HAIKU_BUILD_PRIu16 "u" +# define _HAIKU_BUILD_PRIuLEAST16 "u" +# define _HAIKU_BUILD_PRIuFAST16 "u" +# define _HAIKU_BUILD_PRIo16 "o" +# define _HAIKU_BUILD_PRIoLEAST16 "o" +# define _HAIKU_BUILD_PRIoFAST16 "o" +# define _HAIKU_BUILD_PRIx16 "x" +# define _HAIKU_BUILD_PRIxLEAST16 "x" +# define _HAIKU_BUILD_PRIxFAST16 "x" +# define _HAIKU_BUILD_PRIX16 "X" +# define _HAIKU_BUILD_PRIXLEAST16 "X" +# define _HAIKU_BUILD_PRIXFAST16 "X" + +# define _HAIKU_BUILD_PRIu32 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_32 "u" +# define _HAIKU_BUILD_PRIuLEAST32 _HAIKU_BUILD_PRIu32 +# define _HAIKU_BUILD_PRIuFAST32 _HAIKU_BUILD_PRIu32 +# define _HAIKU_BUILD_PRIo32 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_32 "o" +# define _HAIKU_BUILD_PRIoLEAST32 _HAIKU_BUILD_PRIo32 +# define _HAIKU_BUILD_PRIoFAST32 _HAIKU_BUILD_PRIo32 +# define _HAIKU_BUILD_PRIx32 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_32 "x" +# define _HAIKU_BUILD_PRIxLEAST32 _HAIKU_BUILD_PRIx32 +# define _HAIKU_BUILD_PRIxFAST32 _HAIKU_BUILD_PRIx32 +# define _HAIKU_BUILD_PRIX32 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_32 "X" +# define _HAIKU_BUILD_PRIXLEAST32 _HAIKU_BUILD_PRIX32 +# define _HAIKU_BUILD_PRIXFAST32 _HAIKU_BUILD_PRIX32 + +# define _HAIKU_BUILD_PRIu64 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_64 "u" +# define _HAIKU_BUILD_PRIuLEAST64 _HAIKU_BUILD_PRIu64 +# define _HAIKU_BUILD_PRIuFAST64 _HAIKU_BUILD_PRIu64 +# define _HAIKU_BUILD_PRIo64 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_64 "o" +# define _HAIKU_BUILD_PRIoLEAST64 _HAIKU_BUILD_PRIo64 +# define _HAIKU_BUILD_PRIoFAST64 _HAIKU_BUILD_PRIo64 +# define _HAIKU_BUILD_PRIx64 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_64 "x" +# define _HAIKU_BUILD_PRIxLEAST64 _HAIKU_BUILD_PRIx64 +# define _HAIKU_BUILD_PRIxFAST64 _HAIKU_BUILD_PRIx64 +# define _HAIKU_BUILD_PRIX64 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_64 "X" +# define _HAIKU_BUILD_PRIXLEAST64 _HAIKU_BUILD_PRIX64 +# define _HAIKU_BUILD_PRIXFAST64 _HAIKU_BUILD_PRIX64 + +# define _HAIKU_BUILD_PRIuMAX _HAIKU_BUILD_PRIu64 +# define _HAIKU_BUILD_PRIuPTR _HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "u" +# define _HAIKU_BUILD_PRIoMAX _HAIKU_BUILD_PRIo64 +# define _HAIKU_BUILD_PRIoPTR _HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "o" +# define _HAIKU_BUILD_PRIxMAX _HAIKU_BUILD_PRIx64 +# define _HAIKU_BUILD_PRIxPTR _HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "x" +# define _HAIKU_BUILD_PRIXMAX _HAIKU_BUILD_PRIX64 +# define _HAIKU_BUILD_PRIXPTR _HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "X" + +/* fscanf() macros for signed integers */ +# define _HAIKU_BUILD_SCNd8 "hhd" +# define _HAIKU_BUILD_SCNdLEAST8 "hhd" +# define _HAIKU_BUILD_SCNdFAST8 "d" +# define _HAIKU_BUILD_SCNi8 "hhi" +# define _HAIKU_BUILD_SCNiLEAST8 "hhi" +# define _HAIKU_BUILD_SCNiFAST8 "i" + +# define _HAIKU_BUILD_SCNd16 "hd" +# define _HAIKU_BUILD_SCNdLEAST16 "hd" +# define _HAIKU_BUILD_SCNdFAST16 "d" +# define _HAIKU_BUILD_SCNi16 "hi" +# define _HAIKU_BUILD_SCNiLEAST16 "hi" +# define _HAIKU_BUILD_SCNiFAST16 "i" + +# define _HAIKU_BUILD_SCNd32 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_32 "d" +# define _HAIKU_BUILD_SCNdLEAST32 _HAIKU_BUILD_SCNd32 +# define _HAIKU_BUILD_SCNdFAST32 _HAIKU_BUILD_SCNd32 +# define _HAIKU_BUILD_SCNi32 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_32 "i" +# define _HAIKU_BUILD_SCNiLEAST32 _HAIKU_BUILD_SCNi32 +# define _HAIKU_BUILD_SCNiFAST32 _HAIKU_BUILD_SCNi32 + +# define _HAIKU_BUILD_SCNd64 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_64 "d" +# define _HAIKU_BUILD_SCNdLEAST64 _HAIKU_BUILD_SCNd64 +# define _HAIKU_BUILD_SCNdFAST64 _HAIKU_BUILD_SCNd64 +# define _HAIKU_BUILD_SCNi64 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_64 "i" +# define _HAIKU_BUILD_SCNiLEAST64 _HAIKU_BUILD_SCNi64 +# define _HAIKU_BUILD_SCNiFAST64 _HAIKU_BUILD_SCNi64 + +# define _HAIKU_BUILD_SCNdMAX _HAIKU_BUILD_SCNd64 +# define _HAIKU_BUILD_SCNdPTR _HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "d" +# define _HAIKU_BUILD_SCNiMAX _HAIKU_BUILD_SCNi64 +# define _HAIKU_BUILD_SCNiPTR _HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "i" + +/* fscanf() macros for unsigned integers */ +# define _HAIKU_BUILD_SCNu8 "hhu" +# define _HAIKU_BUILD_SCNuLEAST8 "hhu" +# define _HAIKU_BUILD_SCNuFAST8 "u" +# define _HAIKU_BUILD_SCNo8 "hho" +# define _HAIKU_BUILD_SCNoLEAST8 "hho" +# define _HAIKU_BUILD_SCNoFAST8 "o" +# define _HAIKU_BUILD_SCNx8 "hhx" +# define _HAIKU_BUILD_SCNxLEAST8 "hhx" +# define _HAIKU_BUILD_SCNxFAST8 "x" + +# define _HAIKU_BUILD_SCNu16 "hu" +# define _HAIKU_BUILD_SCNuLEAST16 "hu" +# define _HAIKU_BUILD_SCNuFAST16 "u" +# define _HAIKU_BUILD_SCNo16 "ho" +# define _HAIKU_BUILD_SCNoLEAST16 "ho" +# define _HAIKU_BUILD_SCNoFAST16 "o" +# define _HAIKU_BUILD_SCNx16 "hx" +# define _HAIKU_BUILD_SCNxLEAST16 "hx" +# define _HAIKU_BUILD_SCNxFAST16 "x" + +# define _HAIKU_BUILD_SCNu32 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_32 "u" +# define _HAIKU_BUILD_SCNuLEAST32 _HAIKU_BUILD_SCNu32 +# define _HAIKU_BUILD_SCNuFAST32 _HAIKU_BUILD_SCNu32 +# define _HAIKU_BUILD_SCNo32 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_32 "o" +# define _HAIKU_BUILD_SCNoLEAST32 _HAIKU_BUILD_SCNo32 +# define _HAIKU_BUILD_SCNoFAST32 _HAIKU_BUILD_SCNo32 +# define _HAIKU_BUILD_SCNx32 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_32 "x" +# define _HAIKU_BUILD_SCNxLEAST32 _HAIKU_BUILD_SCNx32 +# define _HAIKU_BUILD_SCNxFAST32 _HAIKU_BUILD_SCNx32 + +# define _HAIKU_BUILD_SCNu64 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_64 "u" +# define _HAIKU_BUILD_SCNuLEAST64 _HAIKU_BUILD_SCNu64 +# define _HAIKU_BUILD_SCNuFAST64 _HAIKU_BUILD_SCNu64 +# define _HAIKU_BUILD_SCNo64 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_64 "o" +# define _HAIKU_BUILD_SCNoLEAST64 _HAIKU_BUILD_SCNo64 +# define _HAIKU_BUILD_SCNoFAST64 _HAIKU_BUILD_SCNo64 +# define _HAIKU_BUILD_SCNx64 _HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_64 "x" +# define _HAIKU_BUILD_SCNxLEAST64 _HAIKU_BUILD_SCNx64 +# define _HAIKU_BUILD_SCNxFAST64 _HAIKU_BUILD_SCNx64 + +# define _HAIKU_BUILD_SCNuMAX _HAIKU_BUILD_SCNu64 +# define _HAIKU_BUILD_SCNuPTR _HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "u" +# define _HAIKU_BUILD_SCNoMAX _HAIKU_BUILD_SCNo64 +# define _HAIKU_BUILD_SCNoPTR _HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "o" +# define _HAIKU_BUILD_SCNxMAX _HAIKU_BUILD_SCNx64 +# define _HAIKU_BUILD_SCNxPTR _HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "x" + +# ifndef _HAIKU_BUILD_LIBROOT_FUNCTION_WRAPPER +/* fprintf() macros for signed integers */ +# define PRId8 _HAIKU_BUILD_PRId8 +# define PRIdLEAST8 _HAIKU_BUILD_PRIdLEAST8 +# define PRIdFAST8 _HAIKU_BUILD_PRIdFAST8 +# define PRIi8 _HAIKU_BUILD_PRIi8 +# define PRIiLEAST8 _HAIKU_BUILD_PRIiLEAST8 +# define PRIiFAST8 _HAIKU_BUILD_PRIiFAST8 + +# define PRId16 _HAIKU_BUILD_PRId16 +# define PRIdLEAST16 _HAIKU_BUILD_PRIdLEAST16 +# define PRIdFAST16 _HAIKU_BUILD_PRIdFAST16 +# define PRIi16 _HAIKU_BUILD_PRIi16 +# define PRIiLEAST16 _HAIKU_BUILD_PRIiLEAST16 +# define PRIiFAST16 _HAIKU_BUILD_PRIiFAST16 + +# define PRId32 _HAIKU_BUILD_PRId32 +# define PRIdLEAST32 _HAIKU_BUILD_PRIdLEAST32 +# define PRIdFAST32 _HAIKU_BUILD_PRIdFAST32 +# define PRIi32 _HAIKU_BUILD_PRIi32 +# define PRIiLEAST32 _HAIKU_BUILD_PRIiLEAST32 +# define PRIiFAST32 _HAIKU_BUILD_PRIiFAST32 + +# define PRId64 _HAIKU_BUILD_PRId64 +# define PRIdLEAST64 _HAIKU_BUILD_PRIdLEAST64 +# define PRIdFAST64 _HAIKU_BUILD_PRIdFAST64 +# define PRIi64 _HAIKU_BUILD_PRIi64 +# define PRIiLEAST64 _HAIKU_BUILD_PRIiLEAST64 +# define PRIiFAST64 _HAIKU_BUILD_PRIiFAST64 + +# define PRIdMAX _HAIKU_BUILD_PRIdMAX +# define PRIdPTR _HAIKU_BUILD_PRIdPTR +# define PRIiMAX _HAIKU_BUILD_PRIiMAX +# define PRIiPTR _HAIKU_BUILD_PRIiPTR + +/* fprintf() macros for unsigned integers */ +# define PRIu8 _HAIKU_BUILD_PRIu8 +# define PRIuLEAST8 _HAIKU_BUILD_PRIuLEAST8 +# define PRIuFAST8 _HAIKU_BUILD_PRIuFAST8 +# define PRIo8 _HAIKU_BUILD_PRIo8 +# define PRIoLEAST8 _HAIKU_BUILD_PRIoLEAST8 +# define PRIoFAST8 _HAIKU_BUILD_PRIoFAST8 +# define PRIx8 _HAIKU_BUILD_PRIx8 +# define PRIxLEAST8 _HAIKU_BUILD_PRIxLEAST8 +# define PRIxFAST8 _HAIKU_BUILD_PRIxFAST8 +# define PRIX8 _HAIKU_BUILD_PRIX8 +# define PRIXLEAST8 _HAIKU_BUILD_PRIXLEAST8 +# define PRIXFAST8 _HAIKU_BUILD_PRIXFAST8 + +# define PRIu16 _HAIKU_BUILD_PRIu16 +# define PRIuLEAST16 _HAIKU_BUILD_PRIuLEAST16 +# define PRIuFAST16 _HAIKU_BUILD_PRIuFAST16 +# define PRIo16 _HAIKU_BUILD_PRIo16 +# define PRIoLEAST16 _HAIKU_BUILD_PRIoLEAST16 +# define PRIoFAST16 _HAIKU_BUILD_PRIoFAST16 +# define PRIx16 _HAIKU_BUILD_PRIx16 +# define PRIxLEAST16 _HAIKU_BUILD_PRIxLEAST16 +# define PRIxFAST16 _HAIKU_BUILD_PRIxFAST16 +# define PRIX16 _HAIKU_BUILD_PRIX16 +# define PRIXLEAST16 _HAIKU_BUILD_PRIXLEAST16 +# define PRIXFAST16 _HAIKU_BUILD_PRIXFAST16 + +# define PRIu32 _HAIKU_BUILD_PRIu32 +# define PRIuLEAST32 _HAIKU_BUILD_PRIuLEAST32s +# define PRIuFAST32 _HAIKU_BUILD_PRIuFAST32 +# define PRIo32 _HAIKU_BUILD_PRIo32 +# define PRIoLEAST32 _HAIKU_BUILD_PRIoLEAST32 +# define PRIoFAST32 _HAIKU_BUILD_PRIoFAST32 +# define PRIx32 _HAIKU_BUILD_PRIx32 +# define PRIxLEAST32 _HAIKU_BUILD_PRIxLEAST32 +# define PRIxFAST32 _HAIKU_BUILD_PRIxFAST32 +# define PRIX32 _HAIKU_BUILD_PRIX32 +# define PRIXLEAST32 _HAIKU_BUILD_PRIXLEAST32 +# define PRIXFAST32 _HAIKU_BUILD_PRIXFAST32 + +# define PRIu64 _HAIKU_BUILD_PRIu64 +# define PRIuLEAST64 _HAIKU_BUILD_PRIuLEAST64 +# define PRIuFAST64 _HAIKU_BUILD_PRIuFAST64 +# define PRIo64 _HAIKU_BUILD_PRIo64 +# define PRIoLEAST64 _HAIKU_BUILD_PRIoLEAST64 +# define PRIoFAST64 _HAIKU_BUILD_PRIoFAST64 +# define PRIx64 _HAIKU_BUILD_PRIx64 +# define PRIxLEAST64 _HAIKU_BUILD_PRIxLEAST64 +# define PRIxFAST64 _HAIKU_BUILD_PRIxFAST64 +# define PRIX64 _HAIKU_BUILD_PRIX64 +# define PRIXLEAST64 _HAIKU_BUILD_PRIXLEAST64 +# define PRIXFAST64 _HAIKU_BUILD_PRIXFAST64 + +# define PRIuMAX _HAIKU_BUILD_PRIuMAX +# define PRIuPTR _HAIKU_BUILD_PRIuPTR +# define PRIoMAX _HAIKU_BUILD_PRIoMAX +# define PRIoPTR _HAIKU_BUILD_PRIoPTR +# define PRIxMAX _HAIKU_BUILD_PRIxMAX +# define PRIxPTR _HAIKU_BUILD_PRIxPTR +# define PRIXMAX _HAIKU_BUILD_PRIXMAX +# define PRIXPTR _HAIKU_BUILD_PRIXPTR + +/* fscanf() macros for signed integers */ +# define SCNd8 _HAIKU_BUILD_SCNd8 +# define SCNdLEAST8 _HAIKU_BUILD_SCNdLEAST8 +# define SCNdFAST8 _HAIKU_BUILD_SCNdFAST8 +# define SCNi8 _HAIKU_BUILD_SCNi8 +# define SCNiLEAST8 _HAIKU_BUILD_SCNiLEAST8 +# define SCNiFAST8 _HAIKU_BUILD_SCNiFAST8 + +# define SCNd16 _HAIKU_BUILD_SCNd16 +# define SCNdLEAST16 _HAIKU_BUILD_SCNdLEAST16 +# define SCNdFAST16 _HAIKU_BUILD_SCNdFAST16 +# define SCNi16 _HAIKU_BUILD_SCNi16 +# define SCNiLEAST16 _HAIKU_BUILD_SCNiLEAST16 +# define SCNiFAST16 _HAIKU_BUILD_SCNiFAST16 + +# define SCNd32 _HAIKU_BUILD_SCNd32 +# define SCNdLEAST32 _HAIKU_BUILD_SCNdLEAST32 +# define SCNdFAST32 _HAIKU_BUILD_SCNdFAST32 +# define SCNi32 _HAIKU_BUILD_SCNi32 +# define SCNiLEAST32 _HAIKU_BUILD_SCNiLEAST32 +# define SCNiFAST32 _HAIKU_BUILD_SCNiFAST32 + +# define SCNd64 _HAIKU_BUILD_SCNd64 +# define SCNdLEAST64 _HAIKU_BUILD_SCNdLEAST64 +# define SCNdFAST64 _HAIKU_BUILD_SCNdFAST64 +# define SCNi64 _HAIKU_BUILD_SCNi64 +# define SCNiLEAST64 _HAIKU_BUILD_SCNiLEAST64 +# define SCNiFAST64 _HAIKU_BUILD_SCNiFAST64 + +# define SCNdMAX _HAIKU_BUILD_SCNdMAX +# define SCNdPTR _HAIKU_BUILD_SCNdPTR +# define SCNiMAX _HAIKU_BUILD_SCNiMAX +# define SCNiPTR _HAIKU_BUILD_SCNiPTR + +/* fscanf() macros for unsigned integers */ +# define SCNu8 _HAIKU_BUILD_SCNu8 +# define SCNuLEAST8 _HAIKU_BUILD_SCNuLEAST8 +# define SCNuFAST8 _HAIKU_BUILD_SCNuFAST8 +# define SCNo8 _HAIKU_BUILD_SCNo8 +# define SCNoLEAST8 _HAIKU_BUILD_SCNoLEAST8 +# define SCNoFAST8 _HAIKU_BUILD_SCNoFAST8 +# define SCNx8 _HAIKU_BUILD_SCNx8 +# define SCNxLEAST8 _HAIKU_BUILD_SCNxLEAST8 +# define SCNxFAST8 _HAIKU_BUILD_SCNxFAST8 + +# define SCNu16 _HAIKU_BUILD_SCNu16 +# define SCNuLEAST16 _HAIKU_BUILD_SCNuLEAST16 +# define SCNuFAST16 _HAIKU_BUILD_SCNuFAST16 +# define SCNo16 _HAIKU_BUILD_SCNo16 +# define SCNoLEAST16 _HAIKU_BUILD_SCNoLEAST16 +# define SCNoFAST16 _HAIKU_BUILD_SCNoFAST16 +# define SCNx16 _HAIKU_BUILD_SCNx16 +# define SCNxLEAST16 _HAIKU_BUILD_SCNxLEAST16 +# define SCNxFAST16 _HAIKU_BUILD_SCNxFAST16 + +# define SCNu32 _HAIKU_BUILD_SCNu32 +# define SCNuLEAST32 _HAIKU_BUILD_SCNuLEAST32 +# define SCNuFAST32 _HAIKU_BUILD_SCNuFAST32 +# define SCNo32 _HAIKU_BUILD_SCNo32 +# define SCNoLEAST32 _HAIKU_BUILD_SCNoLEAST32 +# define SCNoFAST32 _HAIKU_BUILD_SCNoFAST32 +# define SCNx32 _HAIKU_BUILD_SCNx32 +# define SCNxLEAST32 _HAIKU_BUILD_SCNxLEAST32 +# define SCNxFAST32 _HAIKU_BUILD_SCNxFAST32 + +# define SCNu64 _HAIKU_BUILD_SCNu64 +# define SCNuLEAST64 _HAIKU_BUILD_SCNuLEAST64 +# define SCNuFAST64 _HAIKU_BUILD_SCNuFAST64 +# define SCNo64 _HAIKU_BUILD_SCNo64 +# define SCNoLEAST64 _HAIKU_BUILD_SCNoLEAST64 +# define SCNoFAST64 _HAIKU_BUILD_SCNoFAST64 +# define SCNx64 _HAIKU_BUILD_SCNx64 +# define SCNxLEAST64 _HAIKU_BUILD_SCNxLEAST64 +# define SCNxFAST64 _HAIKU_BUILD_SCNxFAST64 + +# define SCNuMAX _HAIKU_BUILD_SCNuMAX +# define SCNuPTR _HAIKU_BUILD_SCNuPTR +# define SCNoMAX _HAIKU_BUILD_SCNoMAX +# define SCNoPTR _HAIKU_BUILD_SCNoPTR +# define SCNxMAX _HAIKU_BUILD_SCNxMAX +# define SCNxPTR _HAIKU_BUILD_SCNxPTR +# endif /* _HAIKU_BUILD_LIBROOT_FUNCTION_WRAPPER */ +#endif /* !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) */ + + +#ifdef __cplusplus +extern "C" { +#endif + +intmax_t _HAIKU_BUILD_DECLARE_FUNCTION(intmax_t, imaxabs, (intmax_t num)) +imaxdiv_t _HAIKU_BUILD_DECLARE_FUNCTION(imaxdiv_t, imaxdiv, \ + (intmax_t numer, intmax_t denom)) + +intmax_t _HAIKU_BUILD_DECLARE_FUNCTION(intmax_t, strtoimax, \ + (const char *string, char **_end, int base)) +uintmax_t _HAIKU_BUILD_DECLARE_FUNCTION(uintmax_t, strtoumax, \ + (const char *string, char **_end, int base)) +/* intmax_t _HAIKU_BUILD_DECLARE_FUNCTION(intmax_t, wcstoimax, (const __wchar_t *, __wchar_t **, int)) */ +/* uintmax_t _HAIKU_BUILD_DECLARE_FUNCTION(uintmax_t, wcstoumax, (const __wchar_t *, __wchar_t **, int)) */ + + +#ifdef __cplusplus +} +#endif + + +#endif /* _INTTYPES_H_ */ ############################################################################ Commit: ca8bd52a6c56738ff7221d7659f8516f5e08a9a1 Author: Matt Madia <mattmadia@xxxxxxxxx> Date: Fri Aug 3 10:23:03 2012 UTC Added a TODO. ---------------------------------------------------------------------------- diff --git a/headers/build/posix_target/target_limits.h b/headers/build/posix_target/target_limits.h index 2ca8b7e..57f8b94 100644 --- a/headers/build/posix_target/target_limits.h +++ b/headers/build/posix_target/target_limits.h @@ -10,6 +10,13 @@ #include <float.h> /* for DBL_DIG, FLT_DIG, etc */ +/* TODO: #8730 -- The values for _HAIKU_BUILD_LONGLONG_MIN, + _HAIKU_BUILD_LONGLONG_MAX are compiler specific. + Their values could be incorrect (when long long isn't 64 bit). + + Get the values via HaikuHostBuildConfig.h +*/ + #define _HAIKU_BUILD_LONGLONG_MIN (-9223372036854775807LL - 1) /* these are Be specific */ #define _HAIKU_BUILD_LONGLONG_MAX (9223372036854775807LL) #define _HAIKU_BUILD_ULONGLONG_MAX (0xffffffffffffffffULL) ############################################################################ Commit: 13c64484bff573f4d4627fac69b2baea30035622 Author: Matt Madia <mattmadia@xxxxxxxxx> Date: Fri Aug 3 10:44:58 2012 UTC Added the unprefixed types. ---------------------------------------------------------------------------- diff --git a/headers/build/os_target/support/target_SupportDefs.h b/headers/build/os_target/support/target_SupportDefs.h index 6761c25..edced69 100644 --- a/headers/build/os_target/support/target_SupportDefs.h +++ b/headers/build/os_target/support/target_SupportDefs.h @@ -237,5 +237,117 @@ _HAIKU_BUILD_DECLARE_FUNCTION(void*, _haiku_build_get_stack_frame, (void)) # define _HAIKU_BUILD_TRUE 1 #endif +#ifndef _HAIKU_BUILD_LIBROOT_FUNCTION_WRAPPER +/* printf()/scanf() format strings for [u]int* types */ +# define B_PRId8 _HAIKU_BUILD_B_PRId8 +# define B_PRIi8 _HAIKU_BUILD_B_PRIi8 +# define B_PRId16 _HAIKU_BUILD_B_PRId16 +# define B_PRIi16 _HAIKU_BUILD_B_PRIi16 +# define B_PRId32 _HAIKU_BUILD_B_PRId32 +# define B_PRIi32 _HAIKU_BUILD_B_PRId64 +# define B_PRId64 _HAIKU_BUILD_B_PRId64 +# define B_PRIi64 _HAIKU_BUILD_B_PRIi64 +# define B_PRIu8 _HAIKU_BUILD_B_PRIu8 +# define B_PRIo8 _HAIKU_BUILD_B_PRIo8 +# define B_PRIx8 _HAIKU_BUILD_B_PRIx8 +# define B_PRIX8 _HAIKU_BUILD_B_PRIX8 +# define B_PRIu16 _HAIKU_BUILD_B_PRIu16 +# define B_PRIo16 _HAIKU_BUILD_B_PRIo16 +# define B_PRIx16 _HAIKU_BUILD_B_PRIx16 +# define B_PRIX16 _HAIKU_BUILD_B_PRIX16 +# define B_PRIu32 _HAIKU_BUILD_B_PRIu32 +# define B_PRIo32 _HAIKU_BUILD_B_PRIo32 +# define B_PRIx32 _HAIKU_BUILD_B_PRIx32 +# define B_PRIX32 _HAIKU_BUILD_B_PRIX32 +# define B_PRIu64 _HAIKU_BUILD_B_PRIu64 +# define B_PRIo64 _HAIKU_BUILD_B_PRIo64 +# define B_PRIx64 _HAIKU_BUILD_B_PRIx64 +# define B_PRIX64 _HAIKU_BUILD_B_PRIX64 + +# define B_SCNd8 _HAIKU_BUILD_B_SCNd8 +# define B_SCNi8 _HAIKU_BUILD_B_SCNi8 +# define B_SCNd16 _HAIKU_BUILD_B_SCNd16 +# define B_SCNi16 _HAIKU_BUILD_B_SCNi16 +# define B_SCNd32 _HAIKU_BUILD_B_SCNd32 +# define B_SCNi32 _HAIKU_BUILD_B_SCNi32 +# define B_SCNd64 _HAIKU_BUILD_B_SCNd64 +# define B_SCNi64 _HAIKU_BUILD_B_SCNi64 +# define B_SCNu8 _HAIKU_BUILD_B_SCNu8 +# define B_SCNo8 _HAIKU_BUILD_B_SCNo8 +# define B_SCNx8 _HAIKU_BUILD_B_SCNx8 +# define B_SCNu16 _HAIKU_BUILD_B_SCNu16 +# define B_SCNo16 _HAIKU_BUILD_B_SCNo16 +# define B_SCNx16 _HAIKU_BUILD_B_SCNx16 +# define B_SCNu32 _HAIKU_BUILD_B_SCNu32 +# define B_SCNo32 _HAIKU_BUILD_B_SCNo32 +# define B_SCNx32 _HAIKU_BUILD_B_SCNx32 +# define B_SCNu64 _HAIKU_BUILD_B_SCNu64 +# define B_SCNo64 _HAIKU_BUILD_B_SCNo64 +# define B_SCNx64 _HAIKU_BUILD_B_SCNx64 + +/* printf() format strings for some standard types */ +/* size_t */ +# define B_PRIuSIZE _HAIKU_BUILD_B_PRIuSIZE +# define B_PRIoSIZE _HAIKU_BUILD_B_PRIoSIZE +# define B_PRIxSIZE _HAIKU_BUILD_B_PRIxSIZE +# define B_PRIXSIZE _HAIKU_BUILD_B_PRIXSIZE +/* ssize_t */ +# define B_PRIdSSIZE _HAIKU_BUILD_B_PRIdSSIZE +# define B_PRIiSSIZE _HAIKU_BUILD_B_PRIiSSIZE +/* addr_t */ +# define B_PRIuADDR _HAIKU_BUILD_B_PRIuADDR +# define B_PRIoADDR _HAIKU_BUILD_B_PRIoADDR +# define B_PRIxADDR _HAIKU_BUILD_B_PRIxADDR +# define B_PRIXADDR _HAIKU_BUILD_B_PRIXADDR +/* phys_addr_t */ +# define B_PRIuPHYSADDR _HAIKU_BUILD_B_PRIuPHYSADDR +# define B_PRIoPHYSADDR _HAIKU_BUILD_B_PRIoPHYSADDR +# define B_PRIxPHYSADDR _HAIKU_BUILD_B_PRIxPHYSADDR +# define B_PRIXPHYSADDR _HAIKU_BUILD_B_PRIXPHYSADDR +/* generic_addr_t */ +# define B_PRIuGENADDR _HAIKU_BUILD_B_PRIuGENADDR +# define B_PRIoGENADDR _HAIKU_BUILD_B_PRIoGENADDR +# define B_PRIxGENADDR _HAIKU_BUILD_B_PRIxGENADDR +# define B_PRIXGENADDR _HAIKU_BUILD_B_PRIXGENADDR +/* off_t */ +# define B_PRIdOFF _HAIKU_BUILD_B_PRIdOFF +# define B_PRIiOFF _HAIKU_BUILD_B_PRIiOFF +/* dev_t */ +# define B_PRIdDEV _HAIKU_BUILD_B_PRIdDEV +# define B_PRIiDEV _HAIKU_BUILD_B_PRIiDEV +/* ino_t */ +# define B_PRIdINO _HAIKU_BUILD_B_PRIdINO +# define B_PRIiINO _HAIKU_BUILD_B_PRIiINO +/* time_t */ +# define B_PRIdTIME _HAIKU_BUILD_B_PRIdTIME +# define B_PRIiTIME _HAIKU_BUILD_B_PRIiTIME + +/* min and max comparisons */ +# ifndef __cplusplus +# ifdef _haiku_build_min +# define min(a,b) _haiku_build_min(a,b) +# endif +# ifdef _haiku_build_max +# define max(a,b) _haiku_build_max(a,b) +# endif +# endif + +/* min() and max() are functions in C++ */ +# define min_c(a,b) _haiku_build_min_c(a,b) +# define max_c(a,b) _haiku_build_max_c(a,b) + + +/* Obsolete or discouraged API */ + +/* use 'true' and 'false' */ +# ifdef _HAIKU_BUILD_FALSE +# define FALSE _HAIKU_BUILD_FALSE +# endif +# ifdef _HAIKU_BUILD_TRUE +# define TRUE _HAIKU_BUILD_TRUE +# endif + +#endif /* _HAIKU_BUILD_LIBROOT_FUNCTION_WRAPPER */ + #endif /* _SUPPORT_DEFS_H */