From 60d0411454f55c101594e0628c53b3d0569f0cdf Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Mon, 11 May 2026 14:08:18 -0400 Subject: [PATCH] headers: Move version constants to config/HaikuVersion.h. They have been in BeBuild.h since BeOS days, but as this file is included everywhere in the base system headers, it causes a bunch of unnecessary POSIX namespace pollution. So, instead, put them in a config header, and include it from SupportDefs.h, which should only ever be included by Be/Haiku API headers. --- headers/build/config/HaikuVersion.h | 1 + headers/config/HaikuVersion.h | 85 +++++++++++++++++++++++++++++ headers/os/BeBuild.h | 77 +------------------------- headers/os/support/SupportDefs.h | 1 + 4 files changed, 89 insertions(+), 75 deletions(-) create mode 100644 headers/build/config/HaikuVersion.h create mode 100644 headers/config/HaikuVersion.h diff --git a/headers/build/config/HaikuVersion.h b/headers/build/config/HaikuVersion.h new file mode 100644 index 0000000000..f6a9efd9f1 --- /dev/null +++ b/headers/build/config/HaikuVersion.h @@ -0,0 +1 @@ +#include <../config/HaikuVersion.h> diff --git a/headers/config/HaikuVersion.h b/headers/config/HaikuVersion.h new file mode 100644 index 0000000000..9e34675ace --- /dev/null +++ b/headers/config/HaikuVersion.h @@ -0,0 +1,85 @@ +/* + * Copyright 2007-2026, Haiku, Inc. All rights reserved. + * Distributed under the terms of the MIT License. + */ +#ifndef _CONFIG_HAIKU_VERSION_H +#define _CONFIG_HAIKU_VERSION_H + + +#include + + +#define B_BEOS_VERSION_4 0x0400 +#define B_BEOS_VERSION_4_5 0x0450 +#define B_BEOS_VERSION_5 0x0500 + +#define B_BEOS_VERSION B_BEOS_VERSION_5 +#define B_BEOS_VERSION_MAUI B_BEOS_VERSION_5 + +/* Haiku (API) version */ +#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 +#define B_HAIKU_VERSION_1_PRE_ALPHA_2 0x00000101 +#define B_HAIKU_VERSION_1_ALPHA_2 0x00000200 +#define B_HAIKU_VERSION_1_PRE_ALPHA_3 0x00000201 +#define B_HAIKU_VERSION_1_ALPHA_3 0x00000300 +#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 +#define B_HAIKU_VERSION_1_BETA_1 0x00000500 +#define B_HAIKU_VERSION_1_PRE_BETA_2 0x00000501 +#define B_HAIKU_VERSION_1_BETA_2 0x00000600 +#define B_HAIKU_VERSION_1_PRE_BETA_3 0x00000601 +#define B_HAIKU_VERSION_1_BETA_3 0x00000700 +#define B_HAIKU_VERSION_1_PRE_BETA_4 0x00000701 +#define B_HAIKU_VERSION_1_BETA_4 0x00000800 +#define B_HAIKU_VERSION_1_PRE_BETA_5 0x00000801 +#define B_HAIKU_VERSION_1_BETA_5 0x00000900 +#define B_HAIKU_VERSION_1_PRE_BETA_6 0x00000901 +#define B_HAIKU_VERSION_1 0x00010000 + +#define B_HAIKU_VERSION B_HAIKU_VERSION_1_PRE_BETA_6 + +/* Haiku ABI */ +#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 + +#define B_HAIKU_ABI_NAME __HAIKU_ARCH_ABI + +#if __GNUC__ == 2 +# define B_HAIKU_ABI B_HAIKU_ABI_GCC_2_HAIKU +#elif (__GNUC__ >= 4 && __GNUC__ <= 15) || defined(__TINYC__) +# define B_HAIKU_ABI B_HAIKU_ABI_GCC_4 +#else +# error Unsupported compiler! +#endif + + +#define B_HAIKU_BITS __HAIKU_ARCH_BITS +#define B_HAIKU_PHYSICAL_BITS __HAIKU_ARCH_PHYSICAL_BITS + +#ifdef __HAIKU_ARCH_64_BIT +# define B_HAIKU_64_BIT 1 +#else +# define B_HAIKU_32_BIT 1 +#endif + +#ifdef __HAIKU_ARCH_PHYSICAL_64_BIT +# define B_HAIKU_PHYSICAL_64_BIT 1 +#else +# define B_HAIKU_PHYSICAL_32_BIT 1 +#endif + +#ifdef __HAIKU_BEOS_COMPATIBLE +# define B_HAIKU_BEOS_COMPATIBLE 1 +#endif + + +#endif /* _CONFIG_HAIKU_VERSION_H */ diff --git a/headers/os/BeBuild.h b/headers/os/BeBuild.h index fc2728e86b..ee5e327b57 100644 --- a/headers/os/BeBuild.h +++ b/headers/os/BeBuild.h @@ -1,5 +1,5 @@ /* - * Copyright 2007-2024, Haiku, Inc. All Rights Reserved. + * Copyright 2007-2026, Haiku, Inc. All rights reserved. * Distributed under the terms of the MIT License. */ #ifndef _BE_BUILD_H @@ -9,79 +9,6 @@ #include -#define B_BEOS_VERSION_4 0x0400 -#define B_BEOS_VERSION_4_5 0x0450 -#define B_BEOS_VERSION_5 0x0500 - -#define B_BEOS_VERSION B_BEOS_VERSION_5 -#define B_BEOS_VERSION_MAUI B_BEOS_VERSION_5 - -/* Haiku (API) version */ -#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 -#define B_HAIKU_VERSION_1_PRE_ALPHA_2 0x00000101 -#define B_HAIKU_VERSION_1_ALPHA_2 0x00000200 -#define B_HAIKU_VERSION_1_PRE_ALPHA_3 0x00000201 -#define B_HAIKU_VERSION_1_ALPHA_3 0x00000300 -#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 -#define B_HAIKU_VERSION_1_BETA_1 0x00000500 -#define B_HAIKU_VERSION_1_PRE_BETA_2 0x00000501 -#define B_HAIKU_VERSION_1_BETA_2 0x00000600 -#define B_HAIKU_VERSION_1_PRE_BETA_3 0x00000601 -#define B_HAIKU_VERSION_1_BETA_3 0x00000700 -#define B_HAIKU_VERSION_1_PRE_BETA_4 0x00000701 -#define B_HAIKU_VERSION_1_BETA_4 0x00000800 -#define B_HAIKU_VERSION_1_PRE_BETA_5 0x00000801 -#define B_HAIKU_VERSION_1_BETA_5 0x00000900 -#define B_HAIKU_VERSION_1_PRE_BETA_6 0x00000901 -#define B_HAIKU_VERSION_1 0x00010000 - -#define B_HAIKU_VERSION B_HAIKU_VERSION_1_PRE_BETA_6 - -/* Haiku ABI */ -#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 - -#define B_HAIKU_ABI_NAME __HAIKU_ARCH_ABI - -#if __GNUC__ == 2 -# define B_HAIKU_ABI B_HAIKU_ABI_GCC_2_HAIKU -#elif (__GNUC__ >= 4 && __GNUC__ <= 15) || defined(__TINYC__) -# define B_HAIKU_ABI B_HAIKU_ABI_GCC_4 -#else -# error Unsupported compiler! -#endif - - -#define B_HAIKU_BITS __HAIKU_ARCH_BITS -#define B_HAIKU_PHYSICAL_BITS __HAIKU_ARCH_PHYSICAL_BITS - -#ifdef __HAIKU_ARCH_64_BIT -# define B_HAIKU_64_BIT 1 -#else -# define B_HAIKU_32_BIT 1 -#endif - -#ifdef __HAIKU_ARCH_PHYSICAL_64_BIT -# define B_HAIKU_PHYSICAL_64_BIT 1 -#else -# define B_HAIKU_PHYSICAL_32_BIT 1 -#endif - -#ifdef __HAIKU_BEOS_COMPATIBLE -# define B_HAIKU_BEOS_COMPATIBLE 1 -#endif - - #define _UNUSED(argument) argument #define _PACKED __attribute__((packed)) #define _PRINTFLIKE(_format_, _args_) \ @@ -102,10 +29,10 @@ #define __has_builtin(x) 0 #endif + #define B_DEFINE_SYMBOL_VERSION(function, versionedSymbol) \ __asm__(".symver " function "," versionedSymbol) - #ifdef __cplusplus # define B_DEFINE_WEAK_ALIAS(name, alias_name) \ extern "C" __typeof(name) alias_name __attribute__((weak, alias(#name))) diff --git a/headers/os/support/SupportDefs.h b/headers/os/support/SupportDefs.h index 64f9303325..85b8affc98 100644 --- a/headers/os/support/SupportDefs.h +++ b/headers/os/support/SupportDefs.h @@ -11,6 +11,7 @@ #include #include +#include #include #include