On Thu, 10 Dec 2020 17:06:35 +0200, Tal Shnaiderman wrote: > File drivers/common/mlx5/windows/meson.build is added to enable mlx5 > source files compilation under common windows directory. > A Devx SDK tool must be installed to export two external H files: > mlx5devx.h and mlx5_ifc_devx.h. The installation is based on environment > variable DEVX_INC_PATH. In addition a DLL lib file is installed based on > environment variable DEVX_LIB_PATH. The meson file is using the > environment variables for compilation and linkage.
I installed WinOF-2 for Windows Server 2019 from this page: https://www.mellanox.com/products/adapter-software/ethernet/windows/winof-2 Then I installed DevX SDK from C:\Program Files\Mellanox\DevX SDK and set environment variables: $env:DEVX_INC_PATH = "C:\Program Files\Mellanox\MLNX_WinOF2_DevX_SDK\inc" $env:DEVX_LIB_PATH = "C:\Program Files\Mellanox\MLNX_WinOF2_DevX_SDK\lib" Meson complained no more, but the build failed, log is below. What am I missing? Note: I'm building the whole series. Another question, why there's a clang restriction? [149/203] Compiling C object drivers/a715181@@rte_common_mlx5@sta/common_mlx5_mlx5_common.c.obj. FAILED: drivers/a715181@@rte_common_mlx5@sta/common_mlx5_mlx5_common.c.obj clang @drivers/a715181@@rte_common_mlx5@sta/common_mlx5_mlx5_common.c.obj.rsp In file included from ../../drivers/common/mlx5/mlx5_common.c:13: In file included from ..\..\drivers\common/mlx5/mlx5_common.h:18: ..\..\drivers\common/mlx5/mlx5_prm.h:363:31: error: field has incomplete type 'struct mlx5_wqe_srq_next_seg' struct mlx5_wqe_srq_next_seg next_seg; ^ ..\..\drivers\common/mlx5/mlx5_prm.h:363:9: note: forward declaration of 'struct mlx5_wqe_srq_next_seg' struct mlx5_wqe_srq_next_seg next_seg; ^ ..\..\drivers\common/mlx5/mlx5_prm.h:364:27: error: field has incomplete type 'struct mlx5_wqe_data_seg' struct mlx5_wqe_data_seg dseg; ^ ..\..\drivers\common/mlx5/mlx5_prm.h:364:9: note: forward declaration of 'struct mlx5_wqe_data_seg' struct mlx5_wqe_data_seg dseg; ^ In file included from ../../drivers/common/mlx5/mlx5_common.c:14: In file included from ..\..\drivers\common/mlx5\windows\mlx5_common_os.h:15: In file included from ..\..\drivers\common/mlx5\mlx5_common_mr.h:19: ..\..\drivers\common/mlx5/mlx5_common_mp.h:29:7: warning: forward references to 'enum' types are a Microsoft extension [-Wmicrosoft-enum-forward-reference] enum ibv_wq_state state; /* WQ requested state. */ ^ In file included from ../../drivers/common/mlx5/mlx5_common.c:14: In file included from ..\..\drivers\common/mlx5\windows\mlx5_common_os.h:16: In file included from ..\..\drivers\common/mlx5\windows/mlx5_win_ext.h:12: In file included from C:\Program Files\Mellanox\MLNX_WinOF2_DevX_SDK\inc\mlx5devx.h:26: C:\Program Files\Mellanox\MLNX_WinOF2_DevX_SDK\inc/mlx5_ifc_devx.h:95:45: error: field has incomplete type 'struct mlx5_ifc_dest_format_struct_bits' struct mlx5_ifc_dest_format_struct_bits dest; ^ C:\Program Files\Mellanox\MLNX_WinOF2_DevX_SDK\inc/mlx5_ifc_devx.h:95:12: note: forward declaration of 'struct mlx5_ifc_dest_format_struct_bits' struct mlx5_ifc_dest_format_struct_bits dest; ^ ../../drivers/common/mlx5/mlx5_common.c:323:15: warning: implicit declaration of function 'mlx5_os_get_devx_uar_base_addr' is invalid in C99 [-Wimplicit-function-declaration] base_addr = mlx5_os_get_devx_uar_base_addr(uar); ^ ../../drivers/common/mlx5/mlx5_common.c:323:13: warning: incompatible integer to pointer conversion assigning to 'void *' from 'int' [-Wint-conversion] base_addr = mlx5_os_get_devx_uar_base_addr(uar); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 warnings and 3 errors generated. [151/203] Compiling C object drivers/a715181@@rte_common_mlx5@sta/common_mlx5_mlx5_malloc.c.obj. FAILED: drivers/a715181@@rte_common_mlx5@sta/common_mlx5_mlx5_malloc.c.obj clang @drivers/a715181@@rte_common_mlx5@sta/common_mlx5_mlx5_malloc.c.obj.rsp In file included from ../../drivers/common/mlx5/mlx5_malloc.c:11: In file included from ..\..\drivers\common/mlx5/mlx5_common_utils.h:8: In file included from ..\..\drivers\common/mlx5/mlx5_common.h:18: ..\..\drivers\common/mlx5/mlx5_prm.h:363:31: error: field has incomplete type 'struct mlx5_wqe_srq_next_seg' struct mlx5_wqe_srq_next_seg next_seg; ^ ..\..\drivers\common/mlx5/mlx5_prm.h:363:9: note: forward declaration of 'struct mlx5_wqe_srq_next_seg' struct mlx5_wqe_srq_next_seg next_seg; ^ ..\..\drivers\common/mlx5/mlx5_prm.h:364:27: error: field has incomplete type 'struct mlx5_wqe_data_seg' struct mlx5_wqe_data_seg dseg; ^ ..\..\drivers\common/mlx5/mlx5_prm.h:364:9: note: forward declaration of 'struct mlx5_wqe_data_seg' struct mlx5_wqe_data_seg dseg; ^ In file included from ../../drivers/common/mlx5/mlx5_malloc.c:12: In file included from ..\..\drivers\common/mlx5\windows\mlx5_common_os.h:15: In file included from ..\..\drivers\common/mlx5\mlx5_common_mr.h:19: ..\..\drivers\common/mlx5/mlx5_common_mp.h:29:7: warning: forward references to 'enum' types are a Microsoft extension [-Wmicrosoft-enum-forward-reference] enum ibv_wq_state state; /* WQ requested state. */ ^ In file included from ../../drivers/common/mlx5/mlx5_malloc.c:12: In file included from ..\..\drivers\common/mlx5\windows\mlx5_common_os.h:16: In file included from ..\..\drivers\common/mlx5\windows/mlx5_win_ext.h:12: In file included from C:\Program Files\Mellanox\MLNX_WinOF2_DevX_SDK\inc\mlx5devx.h:26: C:\Program Files\Mellanox\MLNX_WinOF2_DevX_SDK\inc/mlx5_ifc_devx.h:95:45: error: field has incomplete type 'struct mlx5_ifc_dest_format_struct_bits' struct mlx5_ifc_dest_format_struct_bits dest; ^ C:\Program Files\Mellanox\MLNX_WinOF2_DevX_SDK\inc/mlx5_ifc_devx.h:95:12: note: forward declaration of 'struct mlx5_ifc_dest_format_struct_bits' struct mlx5_ifc_dest_format_struct_bits dest; ^ 1 warning and 3 errors generated. [154/203] Compiling C object lib/76b5a35@@rte_hash@sta/librte_hash_rte_cuckoo_hash.c.obj. ninja: build stopped: subcommand failed.