Message ID | 20171213151728.16747-3-nhorman@tuxdriver.com |
---|---|
State | Superseded, archived |
Delegated to: | Thomas Monjalon |
Headers | show |
Context | Check | Description |
---|---|---|
ci/checkpatch | success | coding style OK |
ci/Intel-compilation | success | Compilation OK |
Hi, I know I should have spotted these comments earlier, I'm sorry to be late on this review. 13/12/2017 16:17, Neil Horman: > +#ifndef ALLOW_EXPERIMENTAL_APIS > > +#define __experimental \ These macros should be in the DPDK namespace: RTE_ALLOW_EXPERIMENTAL_API (no need of S) __rte_experimental > +__attribute__((deprecated("Symbol is not yet part of stable abi"), \ Nit: s/abi/ABI/
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_ */
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@tuxdriver.com> CC: Thomas Monjalon <thomas@monjalon.net> CC: "Mcnamara, John" <john.mcnamara@intel.com> CC: Bruce Richardson <bruce.richardson@intel.com> --- lib/librte_compat/rte_compat.h | 11 +++++++++++ 1 file changed, 11 insertions(+)