From 897514785ad56c826088abab1233f4e4eaba001e Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Fri, 22 May 2009 14:57:40 +0000 Subject: [PATCH] Introduced macro B_DEFINE_SYMBOL_VERSION() in to help with versioning symbols, and private macro DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION() for symbols compiled into both libroot and kernel. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30828 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/os/BeBuild.h | 3 +++ headers/private/system/symbol_versioning.h | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 headers/private/system/symbol_versioning.h diff --git a/headers/os/BeBuild.h b/headers/os/BeBuild.h index d656574eba..04c4497afd 100644 --- a/headers/os/BeBuild.h +++ b/headers/os/BeBuild.h @@ -48,4 +48,7 @@ #define _EXPORT #define _IMPORT +#define B_DEFINE_SYMBOL_VERSION(function, versionedSymbol) \ + __asm__(".symver " function "," versionedSymbol) + #endif /* _BE_BUILD_H */ diff --git a/headers/private/system/symbol_versioning.h b/headers/private/system/symbol_versioning.h new file mode 100644 index 0000000000..3ecf9b494d --- /dev/null +++ b/headers/private/system/symbol_versioning.h @@ -0,0 +1,20 @@ +/* + * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. + * Distributed under the terms of the MIT License. + */ +#ifndef _SYMBOL_VERSIONING_H +#define _SYMBOL_VERSIONING_H + +#include + + +#ifdef _KERNEL_MODE +# define DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION(function, symbol, version) \ + B_DEFINE_SYMBOL_VERSION(function, symbol "KERNEL_" version) +#else +# define DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION(function, symbol, version) \ + B_DEFINE_SYMBOL_VERSION(function, symbol "LIBROOT_" version) +#endif + + +#endif /* _SYMBOL_VERSIONING_H */