Macro __SIZEOF_LONG__ is not standardized and MSVC does not define it. Therefore the errors below are seen with MSVC:
../lib/mldev/mldev_utils_scalar.c(465): error C2065: '__SIZEOF_LONG__': undeclared identifier ../lib/mldev/mldev_utils_scalar.c(478): error C2051: case expression not constant ../lib/mldev/mldev_utils_scalar_bfloat16.c(33): error C2065: '__SIZEOF_LONG__': undeclared identifier ../lib/mldev/mldev_utils_scalar_bfloat16.c(49): error C2051: case expression not constant The fix is to define __SIZEOF_LONG__ in a common header when MSVC is used. Signed-off-by: Andre Muezerie <andre...@linux.microsoft.com> --- lib/eal/include/rte_compat.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/eal/include/rte_compat.h b/lib/eal/include/rte_compat.h index 97c1540bd0..6676a1bb13 100644 --- a/lib/eal/include/rte_compat.h +++ b/lib/eal/include/rte_compat.h @@ -66,4 +66,9 @@ __attribute__((section(".text.internal"))) #endif +#ifdef RTE_TOOLCHAIN_MSVC +#define __SIZEOF_LONG__ (sizeof(long)) +#define __SIZEOF_LONG_LONG__ (sizeof(long long)) +#endif + #endif /* _RTE_COMPAT_H_ */ -- 2.47.2.vfs.0.1