On Fri, Jul 17, 2026 at 11:29:58AM +0200, David Marchand wrote:
> Internal symbols *can not* be called as part of public ABI.
> The GFNI stubs must be exported so that an application may call them
> through the (inlined) GFNI API without requiring ALLOW_INTERNAL_API.
>
> Fixes: 944a03a5cfc1 ("hash: fix MSVC link on GFNI stubs")
>
> Signed-off-by: David Marchand <[email protected]>
Acked-by: Bruce Richardson <[email protected]>
> ---
> lib/hash/rte_thash_gfni.c | 4 ++--
> lib/hash/rte_thash_gfni.h | 2 --
> 2 files changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/lib/hash/rte_thash_gfni.c b/lib/hash/rte_thash_gfni.c
> index 2003c7b3db..ae55f7f711 100644
> --- a/lib/hash/rte_thash_gfni.c
> +++ b/lib/hash/rte_thash_gfni.c
> @@ -13,7 +13,7 @@ RTE_LOG_REGISTER_SUFFIX(hash_gfni_logtype, gfni, INFO);
> #define HASH_LOG(level, ...) \
> RTE_LOG_LINE(level, HASH, "" __VA_ARGS__)
>
> -RTE_EXPORT_INTERNAL_SYMBOL(rte_thash_gfni_stub)
> +RTE_EXPORT_SYMBOL(rte_thash_gfni_stub)
> uint32_t
> rte_thash_gfni_stub(const uint64_t *mtrx __rte_unused,
> const uint8_t *key __rte_unused, int len __rte_unused)
> @@ -29,7 +29,7 @@ rte_thash_gfni_stub(const uint64_t *mtrx __rte_unused,
> return 0;
> }
>
> -RTE_EXPORT_INTERNAL_SYMBOL(rte_thash_gfni_bulk_stub)
> +RTE_EXPORT_SYMBOL(rte_thash_gfni_bulk_stub)
> void
> rte_thash_gfni_bulk_stub(const uint64_t *mtrx __rte_unused,
> int len __rte_unused, uint8_t *tuple[] __rte_unused,
> diff --git a/lib/hash/rte_thash_gfni.h b/lib/hash/rte_thash_gfni.h
> index e82378933c..8a72fa9ec6 100644
> --- a/lib/hash/rte_thash_gfni.h
> +++ b/lib/hash/rte_thash_gfni.h
> @@ -22,11 +22,9 @@ extern "C" {
> * @internal
> * Stubs only used when GFNI is not available.
> */
> -__rte_internal
> uint32_t
> rte_thash_gfni_stub(const uint64_t *mtrx, const uint8_t *key, int len);
>
> -__rte_internal
> void
> rte_thash_gfni_bulk_stub(const uint64_t *mtrx, int len, uint8_t *tuple[],
> uint32_t val[], uint32_t num);
> --
> 2.54.0
>