[PATCH 2/3] bitset: fix build for GCC without experimental API
Morten Brørup
mb at smartsharesystems.com
Tue Oct 15 14:53:58 CEST 2024
> From: David Marchand [mailto:david.marchand at redhat.com]
> Sent: Tuesday, 15 October 2024 14.11
>
> For a reason similar to the change on bitops header, hide bitset
> implementation relying on experimental API.
>
> Fixes: 99a1197647d8 ("eal: add bitset type")
>
> Signed-off-by: David Marchand <david.marchand at redhat.com>
> ---
> lib/eal/include/rte_bitset.h | 123 +++++++++++++++++++++++++++++++++++
> 1 file changed, 123 insertions(+)
>
> diff --git a/lib/eal/include/rte_bitset.h
> b/lib/eal/include/rte_bitset.h
> index 74c643a72a..8ae8425fc2 100644
> --- a/lib/eal/include/rte_bitset.h
> +++ b/lib/eal/include/rte_bitset.h
> @@ -255,7 +255,13 @@ __rte_experimental
> static inline bool
> rte_bitset_test(const uint64_t *bitset, size_t bit_num)
> {
> +#ifdef ALLOW_EXPERIMENTAL_API
> return __RTE_BITSET_DELEGATE(rte_bit_test, bitset, bit_num);
> +#else
> + RTE_SET_USED(bitset);
> + RTE_SET_USED(bit_num);
> + return false;
> +#endif
> }
This looks wrong! The API is exposed, but does nothing.
It is possible to build without ALLOW_EXPERIMENTAL_API; the compiler will emit warnings when using experimental APIs.
If those compiler warnings are not handled as errors, the compiled application will be full of bugs.
More information about the dev
mailing list