From 7d540a3e735dd4d3e5b57d281f079ecbf0a8f9fc Mon Sep 17 00:00:00 2001 From: Neil Horman Date: Sun, 21 Jan 2018 20:48:04 -0500 Subject: [PATCH] compat: add experimental tag macro The __rte_experimental macro tags a given exported function as being part of the EXPERIMENTAL api. Use of this tag will cause any caller of the function (that isn't removed by dead code elimination) to emit a warning that the user is making use of an API whos stabilty isn't guaranteed. It also places the function in the .text.experimental section, which is used to validate the tag against the corresponding library version map Signed-off-by: Neil Horman --- lib/librte_compat/rte_compat.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/librte_compat/rte_compat.h b/lib/librte_compat/rte_compat.h index 41e8032ba1..d6e79f3fce 100644 --- a/lib/librte_compat/rte_compat.h +++ b/lib/librte_compat/rte_compat.h @@ -101,5 +101,17 @@ */ #endif +#ifndef ALLOW_EXPERIMENTAL_API + +#define __rte_experimental \ +__attribute__((deprecated("Symbol is not yet part of stable ABI"), \ +section(".text.experimental"))) + +#else + +#define __rte_experimental \ +__attribute__((section(".text.experimental"))) + +#endif #endif /* _RTE_COMPAT_H_ */ -- 2.20.1