Subversion Repositories QNX 8.QNX8 IFS tool

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /* ACC -- Automatic Compiler Configuration
  2.  
  3.    Copyright (C) 1996-2004 Markus Franz Xaver Johannes Oberhumer
  4.    All Rights Reserved.
  5.  
  6.    This software is a copyrighted work licensed under the terms of
  7.    the GNU General Public License. Please consult the file "ACC_LICENSE"
  8.    for details.
  9.  
  10.    Markus F.X.J. Oberhumer
  11.    <markus@oberhumer.com>
  12.    http://www.oberhumer.com/
  13.  */
  14.  
  15.  
  16. /***********************************************************************
  17. //
  18. ************************************************************************/
  19.  
  20. #if (ACC_CC_GNUC >= 0x020800ul)     /* 2.8.0 */
  21. #  define __acc_gnuc_extension__ __extension__
  22. #else
  23. #  define __acc_gnuc_extension__
  24. #endif
  25.  
  26. #if (SIZEOF_LONG_LONG > 0)
  27. __acc_gnuc_extension__ typedef long long acc_llong_t;
  28. #endif
  29. #if (SIZEOF_UNSIGNED_LONG_LONG > 0)
  30. __acc_gnuc_extension__ typedef unsigned long long acc_ullong_t;
  31. #endif
  32.  
  33. #if (!(SIZEOF_SHORT > 0 && SIZEOF_INT > 0 && SIZEOF_LONG > 0))
  34. #  error "missing defines for sizes"
  35. #endif
  36. #if (!(SIZEOF_PTRDIFF_T > 0 && SIZEOF_SIZE_T > 0 && SIZEOF_VOID_P > 0 && SIZEOF_CHAR_P > 0))
  37. #  error "missing defines for sizes"
  38. #endif
  39.  
  40.  
  41. /***********************************************************************
  42. // some <stdint.h> types:
  43. //   required: least & fast: acc_int32l_t, acc_int32f_t
  44. //   optional: exact32 acc_int32e_t
  45. //   optional: least64 acc_int64l_t
  46. ************************************************************************/
  47.  
  48. /* acc_int32e_t is int32_t in <stdint.h> terminology */
  49. #if !defined(acc_int32e_t)
  50. #if (SIZEOF_INT == 4)
  51. #  define acc_int32e_t          int
  52. #  define acc_uint32e_t         unsigned int
  53. #  define ACC_INT32E_C(c)       c
  54. #  define ACC_UINT32E_C(c)      c##U
  55. #elif (SIZEOF_LONG == 4)
  56. #  define acc_int32e_t          long int
  57. #  define acc_uint32e_t         unsigned long int
  58. #  define ACC_INT32E_C(c)       c##L
  59. #  define ACC_UINT32E_C(c)      c##UL
  60. #elif (SIZEOF_SHORT == 4)
  61. #  define acc_int32e_t          short int
  62. #  define acc_uint32e_t         unsigned short int
  63. #  define ACC_INT32E_C(c)       c
  64. #  define ACC_UINT32E_C(c)      c##U
  65. #elif (SIZEOF_LONG_LONG == 4 && SIZEOF_UNSIGNED_LONG_LONG == 4)
  66. #  define acc_int32e_t          acc_llong_t
  67. #  define acc_uint32e_t         acc_ullong_t
  68. #  define ACC_INT32E_C(c)       c##LL
  69. #  define ACC_UINT32E_C(c)      c##ULL
  70. #elif (SIZEOF___INT32 == 4 && SIZEOF_UNSIGNED___INT32 == 4)
  71. #  define acc_int32e_t          __int32
  72. #  define acc_uint32e_t         unsigned __int32
  73. #  if (SIZEOF_INT > 4)
  74. #    define ACC_INT32E_C(c)     c
  75. #    define ACC_UINT32E_C(c)    c##U
  76. #  elif (SIZEOF_LONG > 4)
  77. #    define ACC_INT32E_C(c)     c##L
  78. #    define ACC_UINT32E_C(c)    c##UL
  79. #  else
  80. #    define ACC_INT32E_C(c)     c##i32
  81. #    define ACC_UINT32E_C(c)    c##ui32
  82. #  endif
  83. #else
  84.   /* no exact 32-bit integral type on this machine */
  85. #endif
  86. #endif
  87. #if defined(acc_int32e_t)
  88. #  define SIZEOF_ACC_INT32E_T   4
  89. #endif
  90.  
  91.  
  92. /* acc_int32l_t is int_least32_t in <stdint.h> terminology */
  93. #if !defined(acc_int32l_t)
  94. #if defined(acc_int32e_t)
  95. #  define acc_int32l_t          acc_int32e_t
  96. #  define acc_uint32l_t         acc_uint32e_t
  97. #  define ACC_INT32L_C(c)       ACC_INT32E_C(c)
  98. #  define ACC_UINT32L_C(c)      ACC_UINT32E_C(c)
  99. #  define SIZEOF_ACC_INT32L_T   SIZEOF_ACC_INT32E_T
  100. #elif (SIZEOF_INT > 4)
  101. #  define acc_int32l_t          int
  102. #  define acc_uint32l_t         unsigned int
  103. #  define ACC_INT32L_C(c)       c
  104. #  define ACC_UINT32L_C(c)      c##U
  105. #  define SIZEOF_ACC_INT32L_T   SIZEOF_INT
  106. #elif (SIZEOF_LONG > 4)
  107. #  define acc_int32l_t          long int
  108. #  define acc_uint32l_t         unsigned long int
  109. #  define ACC_INT32L_C(c)       c##L
  110. #  define ACC_UINT32L_C(c)      c##UL
  111. #  define SIZEOF_ACC_INT32L_T   SIZEOF_LONG
  112. #else
  113. #  error "acc_int32l_t"
  114. #endif
  115. #endif
  116.  
  117.  
  118. /* acc_int32f_t is int_fast32_t in <stdint.h> terminology */
  119. #if !defined(acc_int32f_t)
  120. #if (SIZEOF_INT >= 4)
  121. #  define acc_int32f_t          int
  122. #  define acc_uint32f_t         unsigned int
  123. #  define ACC_INT32F_C(c)       c
  124. #  define ACC_UINT32F_C(c)      c##U
  125. #  define SIZEOF_ACC_INT32F_T   SIZEOF_INT
  126. #elif (SIZEOF_LONG >= 4)
  127. #  define acc_int32f_t          long int
  128. #  define acc_uint32f_t         unsigned long int
  129. #  define ACC_INT32F_C(c)       c##L
  130. #  define ACC_UINT32F_C(c)      c##UL
  131. #  define SIZEOF_ACC_INT32F_T   SIZEOF_LONG
  132. #elif defined(acc_int32e_t)
  133. #  define acc_int32f_t          acc_int32e_t
  134. #  define acc_uint32f_t         acc_uint32e_t
  135. #  define ACC_INT32F_C(c)       ACC_INT32E_C(c)
  136. #  define ACC_UINT32F_C(c)      ACC_UINT32E_C(c)
  137. #  define SIZEOF_ACC_INT32F_T   SIZEOF_ACC_INT32E_T
  138. #else
  139. #  error "acc_int32f_t"
  140. #endif
  141. #endif
  142.  
  143.  
  144. /* acc_int64l_t is int_least64_t in <stdint.h> terminology */
  145. #if !defined(acc_int64l_t)
  146. #if (SIZEOF___INT64 >= 8 && SIZEOF_UNSIGNED___INT64 >= 8)
  147. #  if (ACC_CC_BORLANDC) && !defined(ACC_CONFIG_PREFER___INT64)
  148. #    define ACC_CONFIG_PREFER___INT64 1
  149. #  endif
  150. #endif
  151. #if (SIZEOF_INT >= 8)
  152. #  define acc_int64l_t          int
  153. #  define acc_uint64l_t         unsigned int
  154. #  define ACC_INT64L_C(c)       c
  155. #  define ACC_UINT64L_C(c)      c##U
  156. #  define SIZEOF_ACC_INT64L_T   SIZEOF_INT
  157. #elif (SIZEOF_LONG >= 8)
  158. #  define acc_int64l_t          long int
  159. #  define acc_uint64l_t         unsigned long int
  160. #  define ACC_INT64L_C(c)       c##L
  161. #  define ACC_UINT64L_C(c)      c##UL
  162. #  define SIZEOF_ACC_INT64L_T   SIZEOF_LONG
  163. #elif (SIZEOF_LONG_LONG >= 8 && SIZEOF_UNSIGNED_LONG_LONG >= 8) && !defined(ACC_CONFIG_PREFER___INT64)
  164. #  define acc_int64l_t          acc_llong_t
  165. #  define acc_uint64l_t         acc_ullong_t
  166. #  if (ACC_CC_BORLANDC)
  167. #    define ACC_INT64L_C(c)     ((c) + 0ll)
  168. #    define ACC_UINT64L_C(c)    ((c) + 0ull)
  169. #  else
  170. #    define ACC_INT64L_C(c)     c##LL
  171. #    define ACC_UINT64L_C(c)    c##ULL
  172. #  endif
  173. #  define SIZEOF_ACC_INT64L_T   SIZEOF_LONG_LONG
  174. #elif (SIZEOF___INT64 >= 8 && SIZEOF_UNSIGNED___INT64 >= 8)
  175. #  define acc_int64l_t          __int64
  176. #  define acc_uint64l_t         unsigned __int64
  177. #  if (ACC_CC_BORLANDC)
  178. #    define ACC_INT64L_C(c)     ((c) + 0i64)
  179. #    define ACC_UINT64L_C(c)    ((c) + 0ui64)
  180. #  else
  181. #    define ACC_INT64L_C(c)     c##i64
  182. #    define ACC_UINT64L_C(c)    c##ui64
  183. #  endif
  184. #  define SIZEOF_ACC_INT64L_T   SIZEOF___INT64
  185. #else
  186.   /* no least 64-bit integral type on this machine */
  187. #endif
  188. #endif
  189.  
  190.  
  191. #if !defined(acc_intptr_t)
  192. #if (ACC_ARCH_IA32 && ACC_CC_MSC && (_MSC_VER >= 1300))
  193.    typedef __w64 int            acc_intptr_t;
  194.    typedef __w64 unsigned int   acc_uintptr_t;
  195. #  define acc_intptr_t          acc_intptr_t
  196. #  define acc_uintptr_t         acc_uintptr_t
  197. #  define SIZEOF_ACC_INTPTR_T   SIZEOF_INT
  198. #elif (SIZEOF_INT >= SIZEOF_VOID_P)
  199. #  define acc_intptr_t          int
  200. #  define acc_uintptr_t         unsigned int
  201. #  define SIZEOF_ACC_INTPTR_T   SIZEOF_INT
  202. #elif (SIZEOF_LONG >= SIZEOF_VOID_P)
  203. #  define acc_intptr_t          long
  204. #  define acc_uintptr_t         unsigned long
  205. #  define SIZEOF_ACC_INTPTR_T   SIZEOF_LONG
  206. #elif (SIZEOF_ACC_INT64L_T >= SIZEOF_VOID_P)
  207. #  define acc_intptr_t          acc_int64l_t
  208. #  define acc_uintptr_t         acc_uint64l_t
  209. #  define SIZEOF_ACC_INTPTR_T   SIZEOF_ACC_INT64L_T
  210. #else
  211. #  error "acc_intptr_t"
  212. #endif
  213. #endif
  214.  
  215.  
  216. /* workaround for broken compilers */
  217. #if (ACC_BROKEN_INTEGRAL_CONSTANTS)
  218. #  undef ACC_INT32E_C
  219. #  undef ACC_UINT32E_C
  220. #  undef ACC_INT32L_C
  221. #  undef ACC_UINT32L_C
  222. #  undef ACC_INT32F_C
  223. #  undef ACC_UINT32F_C
  224. #  if (SIZEOF_INT == 4)
  225. #    define ACC_INT32E_C(c)     ((c) + 0)
  226. #    define ACC_UINT32E_C(c)    ((c) + 0U)
  227. #    define ACC_INT32L_C(c)     ((c) + 0)
  228. #    define ACC_UINT32L_C(c)    ((c) + 0U)
  229. #    define ACC_INT32F_C(c)     ((c) + 0)
  230. #    define ACC_UINT32F_C(c)    ((c) + 0U)
  231. #  elif (SIZEOF_LONG == 4)
  232. #    define ACC_INT32E_C(c)     ((c) + 0L)
  233. #    define ACC_UINT32E_C(c)    ((c) + 0UL)
  234. #    define ACC_INT32L_C(c)     ((c) + 0L)
  235. #    define ACC_UINT32L_C(c)    ((c) + 0UL)
  236. #    define ACC_INT32F_C(c)     ((c) + 0L)
  237. #    define ACC_UINT32F_C(c)    ((c) + 0UL)
  238. #  else
  239. #    error "integral constants"
  240. #  endif
  241. #endif
  242.  
  243.  
  244. /***********************************************************************
  245. // calling conventions
  246. ************************************************************************/
  247.  
  248. #if (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
  249. #  if (ACC_CC_GNUC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PACIFICC)
  250. #  elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
  251. #    define __acc_cdecl                 __cdecl
  252. #    define __acc_cdecl_atexit
  253. #    define __acc_cdecl_main            __cdecl
  254. #    if (ACC_OS_OS2 && (ACC_CC_DMC || ACC_CC_SYMANTECC))
  255. #      define __acc_cdecl_qsort         __pascal
  256. #    elif (ACC_OS_OS2 && (ACC_CC_ZORTECHC))
  257. #      define __acc_cdecl_qsort         _stdcall
  258. #    else
  259. #      define __acc_cdecl_qsort         __cdecl
  260. #    endif
  261. #  elif (ACC_CC_WATCOMC)
  262. #    define __acc_cdecl                 __cdecl
  263. #  else
  264. #    define __acc_cdecl                 __cdecl
  265. #    define __acc_cdecl_atexit          __cdecl
  266. #    define __acc_cdecl_main            __cdecl
  267. #    define __acc_cdecl_qsort           __cdecl
  268. #  endif
  269. #  if (ACC_CC_GNUC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PACIFICC || ACC_CC_WATCOMC)
  270. #  elif (ACC_OS_OS2 && (ACC_CC_DMC || ACC_CC_SYMANTECC))
  271. #    define __acc_cdecl_sighandler      __pascal
  272. #  elif (ACC_OS_OS2 && (ACC_CC_ZORTECHC))
  273. #    define __acc_cdecl_sighandler      _stdcall
  274. #  elif (ACC_CC_MSC && (_MSC_VER >= 1400)) && defined(_M_CEE_PURE)
  275. #    define __acc_cdecl_sighandler      __clrcall
  276. #  elif (ACC_CC_MSC && (_MSC_VER >= 600 && _MSC_VER < 700))
  277. #    if defined(_DLL)
  278. #      define __acc_cdecl_sighandler    _far _cdecl _loadds
  279. #    elif defined(_MT)
  280. #      define __acc_cdecl_sighandler    _far _cdecl
  281. #    else
  282. #      define __acc_cdecl_sighandler    _cdecl
  283. #    endif
  284. #  else
  285. #    define __acc_cdecl_sighandler      __cdecl
  286. #  endif
  287. #elif (ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
  288. #  define __acc_cdecl                   cdecl
  289. #endif
  290.  
  291. #if !defined(__acc_cdecl)
  292. #  define __acc_cdecl
  293. #endif
  294. #if !defined(__acc_cdecl_atexit)
  295. #  define __acc_cdecl_atexit
  296. #endif
  297. #if !defined(__acc_cdecl_main)
  298. #  define __acc_cdecl_main
  299. #endif
  300. #if !defined(__acc_cdecl_qsort)
  301. #  define __acc_cdecl_qsort
  302. #endif
  303. #if !defined(__acc_cdecl_sighandler)
  304. #  define __acc_cdecl_sighandler
  305. #endif
  306. #if !defined(__acc_cdecl_va)
  307. #  define __acc_cdecl_va                __acc_cdecl
  308. #endif
  309.  
  310. #if (ACC_BROKEN_CDECL_ALT_SYNTAX)
  311. typedef void __acc_cdecl_sighandler (*acc_sighandler_t)(int);
  312. #elif defined(RETSIGTYPE)
  313. typedef RETSIGTYPE (__acc_cdecl_sighandler *acc_sighandler_t)(int);
  314. #else
  315. typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(int);
  316. #endif
  317.  
  318.  
  319. /*
  320. vi:ts=4:et
  321. */
  322.