[dpdk-dev] [PATCHv3 2/4] compat: Add __experimental macro

Neil Horman nhorman at tuxdriver.com
Mon Dec 11 20:36:17 CET 2017


The __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 <nhorman at tuxdriver.com>
CC: Thomas Monjalon <thomas at monjalon.net>
CC: "Mcnamara, John" <john.mcnamara at intel.com>
CC: Bruce Richardson <bruce.richardson at intel.com>
---
 lib/librte_compat/rte_compat.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/lib/librte_compat/rte_compat.h b/lib/librte_compat/rte_compat.h
index 41e8032ba..450dd542c 100644
--- a/lib/librte_compat/rte_compat.h
+++ b/lib/librte_compat/rte_compat.h
@@ -101,5 +101,16 @@
  */
 #endif
 
+#ifndef ALLOW_EXPERIMENTAL_APIS
 
+#define __experimental \
+__attribute__((deprecated("Symbol is not yet part of stable abi"), \
+section(".text.experimental")))
+
+#else
+
+#define __experimental \
+__attribute__((section(".text.experimental")))
+
+#endif
 #endif /* _RTE_COMPAT_H_ */
-- 
2.14.3



More information about the dev mailing list