2007-10-16 00:13:55 +04:00
|
|
|
/*
|
2020-05-09 06:30:15 +03:00
|
|
|
* Copyright 2007-2020, Haiku, Inc. All Rights Reserved.
|
2007-10-16 00:13:55 +04:00
|
|
|
* Distributed under the terms of the MIT License.
|
|
|
|
*/
|
2002-07-09 16:24:59 +04:00
|
|
|
#ifndef _BE_BUILD_H
|
|
|
|
#define _BE_BUILD_H
|
|
|
|
|
2007-10-16 00:13:55 +04:00
|
|
|
|
2009-11-24 22:44:07 +03:00
|
|
|
#include <config/HaikuConfig.h>
|
|
|
|
|
|
|
|
|
2009-05-13 18:37:41 +04:00
|
|
|
#define B_BEOS_VERSION_4 0x0400
|
|
|
|
#define B_BEOS_VERSION_4_5 0x0450
|
|
|
|
#define B_BEOS_VERSION_5 0x0500
|
2002-07-09 16:24:59 +04:00
|
|
|
|
2009-05-13 18:37:41 +04:00
|
|
|
#define B_BEOS_VERSION B_BEOS_VERSION_5
|
|
|
|
#define B_BEOS_VERSION_MAUI B_BEOS_VERSION_5
|
2002-07-09 16:24:59 +04:00
|
|
|
|
2009-05-26 16:24:37 +04:00
|
|
|
/* Haiku (API) version */
|
2009-05-13 18:37:41 +04:00
|
|
|
#define B_HAIKU_VERSION_BEOS 0x00000001
|
|
|
|
#define B_HAIKU_VERSION_BONE 0x00000002
|
|
|
|
#define B_HAIKU_VERSION_DANO 0x00000003
|
|
|
|
#define B_HAIKU_VERSION_1_ALPHA_1 0x00000100
|
2009-08-25 22:16:14 +04:00
|
|
|
#define B_HAIKU_VERSION_1_PRE_ALPHA_2 0x00000101
|
2010-04-19 15:41:00 +04:00
|
|
|
#define B_HAIKU_VERSION_1_ALPHA_2 0x00000200
|
|
|
|
#define B_HAIKU_VERSION_1_PRE_ALPHA_3 0x00000201
|
2011-05-17 01:53:38 +04:00
|
|
|
#define B_HAIKU_VERSION_1_ALPHA_3 0x00000300
|
2012-08-20 09:09:53 +04:00
|
|
|
#define B_HAIKU_VERSION_1_PRE_ALPHA_4 0x00000301
|
|
|
|
#define B_HAIKU_VERSION_1_ALPHA_4 0x00000400
|
|
|
|
#define B_HAIKU_VERSION_1_PRE_BETA_1 0x00000401
|
2018-08-28 07:14:20 +03:00
|
|
|
#define B_HAIKU_VERSION_1_BETA_1 0x00000500
|
|
|
|
#define B_HAIKU_VERSION_1_PRE_BETA_2 0x00000501
|
2020-05-09 06:30:15 +03:00
|
|
|
#define B_HAIKU_VERSION_1_BETA_2 0x00000600
|
|
|
|
#define B_HAIKU_VERSION_1_PRE_BETA_3 0x00000601
|
2021-06-21 19:38:54 +03:00
|
|
|
#define B_HAIKU_VERSION_1_BETA_3 0x00000700
|
|
|
|
#define B_HAIKU_VERSION_1_PRE_BETA_4 0x00000701
|
2022-11-04 03:30:10 +03:00
|
|
|
#define B_HAIKU_VERSION_1_BETA_4 0x00000800
|
|
|
|
#define B_HAIKU_VERSION_1_PRE_BETA_5 0x00000801
|
2009-05-13 18:37:41 +04:00
|
|
|
#define B_HAIKU_VERSION_1 0x00010000
|
2009-05-13 00:55:49 +04:00
|
|
|
|
2022-11-04 03:30:10 +03:00
|
|
|
#define B_HAIKU_VERSION B_HAIKU_VERSION_1_PRE_BETA_5
|
2009-05-13 00:55:49 +04:00
|
|
|
|
2009-05-26 16:24:37 +04:00
|
|
|
/* Haiku ABI */
|
2009-05-13 18:37:41 +04:00
|
|
|
#define B_HAIKU_ABI_MAJOR 0xffff0000
|
|
|
|
#define B_HAIKU_ABI_GCC_2 0x00020000
|
|
|
|
#define B_HAIKU_ABI_GCC_4 0x00040000
|
|
|
|
|
|
|
|
#define B_HAIKU_ABI_GCC_2_ANCIENT 0x00020000
|
|
|
|
#define B_HAIKU_ABI_GCC_2_BEOS 0x00020001
|
|
|
|
#define B_HAIKU_ABI_GCC_2_HAIKU 0x00020002
|
2009-05-13 00:55:49 +04:00
|
|
|
|
2011-11-22 05:44:32 +04:00
|
|
|
#define B_HAIKU_ABI_NAME __HAIKU_ARCH_ABI
|
|
|
|
|
2009-05-13 00:55:49 +04:00
|
|
|
#if __GNUC__ == 2
|
2009-07-09 00:28:23 +04:00
|
|
|
# define B_HAIKU_ABI B_HAIKU_ABI_GCC_2_HAIKU
|
2021-11-16 23:12:58 +03:00
|
|
|
#elif (__GNUC__ >= 4 && __GNUC__ <= 12) || defined(__TINYC__)
|
2009-05-13 18:37:41 +04:00
|
|
|
# define B_HAIKU_ABI B_HAIKU_ABI_GCC_4
|
2008-04-09 18:21:45 +04:00
|
|
|
#else
|
2017-12-12 03:28:45 +03:00
|
|
|
# error Unsupported compiler!
|
2002-07-09 16:24:59 +04:00
|
|
|
#endif
|
|
|
|
|
2009-05-13 00:55:49 +04:00
|
|
|
|
* config/{HaikuConfig.h,types.h}:
- Added macro __HAIKU_ARCH_BITS specifying the architecture bitness (32/64)
(might be more convenient to use than __HAIKU_ARCH_{32,64}_BIT).
- Added macros __HAIKU_ARCH_PHYSICAL_BITS, __HAIKU_ARCH_PHYSICAL_{32,64}_BIT,
and the types __haiku_phys_[s]addr_t. The intention is to use separate
macros and types for virtual and physical addresses, since for some
architectures (e.g. x86 with PAE) those actually differ.
* sys/types.h, BeBuild.h, SupportDefs.h:
- Added types phys_[s]addr_t and respective printf() format macros.
- Added public macros B_HAIKU_BITS, B_HAIKU_PHYSICAL_BITS,
B_HAIKU_PHYSICAL_{32,64}_BIT.
Might break the build under older Haiku installations. Will test next.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36926 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-24 23:55:38 +04:00
|
|
|
#define B_HAIKU_BITS __HAIKU_ARCH_BITS
|
|
|
|
#define B_HAIKU_PHYSICAL_BITS __HAIKU_ARCH_PHYSICAL_BITS
|
|
|
|
|
2009-11-24 22:44:07 +03:00
|
|
|
#ifdef __HAIKU_ARCH_64_BIT
|
|
|
|
# define B_HAIKU_64_BIT 1
|
2009-11-26 02:44:23 +03:00
|
|
|
#else
|
|
|
|
# define B_HAIKU_32_BIT 1
|
2009-11-24 22:44:07 +03:00
|
|
|
#endif
|
|
|
|
|
* config/{HaikuConfig.h,types.h}:
- Added macro __HAIKU_ARCH_BITS specifying the architecture bitness (32/64)
(might be more convenient to use than __HAIKU_ARCH_{32,64}_BIT).
- Added macros __HAIKU_ARCH_PHYSICAL_BITS, __HAIKU_ARCH_PHYSICAL_{32,64}_BIT,
and the types __haiku_phys_[s]addr_t. The intention is to use separate
macros and types for virtual and physical addresses, since for some
architectures (e.g. x86 with PAE) those actually differ.
* sys/types.h, BeBuild.h, SupportDefs.h:
- Added types phys_[s]addr_t and respective printf() format macros.
- Added public macros B_HAIKU_BITS, B_HAIKU_PHYSICAL_BITS,
B_HAIKU_PHYSICAL_{32,64}_BIT.
Might break the build under older Haiku installations. Will test next.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36926 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-24 23:55:38 +04:00
|
|
|
#ifdef __HAIKU_ARCH_PHYSICAL_64_BIT
|
|
|
|
# define B_HAIKU_PHYSICAL_64_BIT 1
|
|
|
|
#else
|
|
|
|
# define B_HAIKU_PHYSICAL_32_BIT 1
|
|
|
|
#endif
|
|
|
|
|
2009-11-24 22:44:07 +03:00
|
|
|
#ifdef __HAIKU_BEOS_COMPATIBLE
|
|
|
|
# define B_HAIKU_BEOS_COMPATIBLE 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
2009-05-13 00:55:49 +04:00
|
|
|
#define _UNUSED(argument) argument
|
|
|
|
#define _PACKED __attribute__((packed))
|
|
|
|
#define _PRINTFLIKE(_format_, _args_) \
|
|
|
|
__attribute__((format(__printf__, _format_, _args_)))
|
2021-10-09 16:03:36 +03:00
|
|
|
|
2020-01-27 09:01:25 +03:00
|
|
|
#if __GNUC__ >= 4
|
2021-10-01 00:18:12 +03:00
|
|
|
# define _ALIGNED_BY_ARG(_no_) __attribute__((alloc_align(_no_)))
|
2020-01-27 09:01:25 +03:00
|
|
|
# define _EXPORT __attribute__((visibility("default")))
|
|
|
|
#else
|
2021-10-01 00:18:12 +03:00
|
|
|
# define _ALIGNED_BY_ARG(_no_)
|
2020-01-27 09:01:25 +03:00
|
|
|
# define _EXPORT
|
|
|
|
#endif
|
2009-05-13 00:55:49 +04:00
|
|
|
#define _IMPORT
|
|
|
|
|
2009-05-22 18:57:40 +04:00
|
|
|
#define B_DEFINE_SYMBOL_VERSION(function, versionedSymbol) \
|
|
|
|
__asm__(".symver " function "," versionedSymbol)
|
|
|
|
|
2013-11-06 00:25:48 +04:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
# define B_DEFINE_WEAK_ALIAS(name, alias_name) \
|
|
|
|
extern "C" __typeof(name) alias_name __attribute__((weak, alias(#name)))
|
|
|
|
#else
|
|
|
|
# define B_DEFINE_WEAK_ALIAS(name, alias_name) \
|
|
|
|
__typeof(name) alias_name __attribute__((weak, alias(#name)))
|
|
|
|
#endif
|
2011-11-02 04:06:53 +04:00
|
|
|
|
|
|
|
|
2003-05-15 18:54:08 +04:00
|
|
|
#endif /* _BE_BUILD_H */
|