eal: fix undeclared function error on old CPUs
Checks
Commit Message
Error reported:
../lib/net/net_crc_sse.c:49:17: error: call to undeclared function
'_mm_clmulepi64_si128'; ISO C99 and later do not support implicit
function declarations [-Wimplicit-function-declaration]
The fix is to remove the unnecessary ifdef around the inclusion of
header file immintrin.h. This header also contains functions that do
not require AVX instructions, so should not be included only when AVX
is available.
Bugzilla ID: 1595
Fixes: da826b7135a4 ("eal: introduce ymm type for AVX 256-bit")
Cc: stable@dpdk.org
Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
---
lib/eal/x86/include/rte_vect.h | 2 --
1 file changed, 2 deletions(-)
Comments
On Tue, Jan 14, 2025 at 08:21:13AM -0800, Andre Muezerie wrote:
> Error reported:
> ../lib/net/net_crc_sse.c:49:17: error: call to undeclared function
> '_mm_clmulepi64_si128'; ISO C99 and later do not support implicit
> function declarations [-Wimplicit-function-declaration]
>
> The fix is to remove the unnecessary ifdef around the inclusion of
> header file immintrin.h. This header also contains functions that do
> not require AVX instructions, so should not be included only when AVX
> is available.
>
> Bugzilla ID: 1595
> Fixes: da826b7135a4 ("eal: introduce ymm type for AVX 256-bit")
> Cc: stable@dpdk.org
>
> Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
> ---
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> lib/eal/x86/include/rte_vect.h | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/lib/eal/x86/include/rte_vect.h b/lib/eal/x86/include/rte_vect.h
> index 5ac3ccfd82..5fdcd632ac 100644
> --- a/lib/eal/x86/include/rte_vect.h
> +++ b/lib/eal/x86/include/rte_vect.h
> @@ -19,9 +19,7 @@
>
> #if defined(__ICC) || defined(_WIN64)
> #include <smmintrin.h> /* SSE4 */
> -#if defined(__AVX__)
> #include <immintrin.h>
> -#endif
> #else
> #include <x86intrin.h>
> #endif
> --
> 2.47.0.vfs.0.3
>
On Tue, Jan 14, 2025 at 5:33 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> On Tue, Jan 14, 2025 at 08:21:13AM -0800, Andre Muezerie wrote:
> > Error reported:
> > ../lib/net/net_crc_sse.c:49:17: error: call to undeclared function
> > '_mm_clmulepi64_si128'; ISO C99 and later do not support implicit
> > function declarations [-Wimplicit-function-declaration]
> >
> > The fix is to remove the unnecessary ifdef around the inclusion of
> > header file immintrin.h. This header also contains functions that do
> > not require AVX instructions, so should not be included only when AVX
> > is available.
> >
> > Bugzilla ID: 1595
> > Fixes: da826b7135a4 ("eal: introduce ymm type for AVX 256-bit")
> > Cc: stable@dpdk.org
> >
Reported-by: Pier Damouny <pdamouny@nvidia.com>
> > Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Applied, thanks Andre.
@@ -19,9 +19,7 @@
#if defined(__ICC) || defined(_WIN64)
#include <smmintrin.h> /* SSE4 */
-#if defined(__AVX__)
#include <immintrin.h>
-#endif
#else
#include <x86intrin.h>
#endif