[PATCH] drivers: remove invalid options for MSVC
Bruce Richardson
bruce.richardson at intel.com
Wed Mar 12 16:18:34 CET 2025
On Tue, Mar 11, 2025 at 07:13:56PM -0700, Andre Muezerie wrote:
> When compiling "drivers" directory with MSVC the errors below popped up:
>
> 1)
> LINK : warning LNK4044: unrecognized option
> '/Wl,/def:V:\github\dpdk\build\drivers\rte_bus_vdev_exports.def'; ignored
>
> 2)
> cl : Command line warning D9002 : ignoring unknown
> option '-fno-asynchronous-unwind-tables'
>
> The fix is to remove the unnecessary/invalid option when using MSVC.
>
> Signed-off-by: Andre Muezerie <andremue at linux.microsoft.com>
> ---
> drivers/meson.build | 6 +++++-
> drivers/net/intel/i40e/meson.build | 2 +-
> drivers/net/intel/iavf/meson.build | 2 +-
> drivers/net/intel/ice/meson.build | 2 +-
> drivers/net/intel/ixgbe/meson.build | 2 +-
> 5 files changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/meson.build b/drivers/meson.build
> index 05391a575d..fc7f7eed8c 100644
> --- a/drivers/meson.build
> +++ b/drivers/meson.build
> @@ -289,7 +289,11 @@ foreach subpath:subdirs
> output: '@0 at _exports.def'.format(lib_name))
> lk_deps += [def_file]
>
> - lk_args = ['-Wl,/def:' + def_file.full_path()]
> + if is_ms_compiler
> + lk_args = ['/def:' + def_file.full_path()]
> + else
> + lk_args = ['-Wl,/def:' + def_file.full_path()]
> + endif
> else
> mingw_map = custom_target(lib_name + '_mingw',
> command: [map_to_win_cmd, '@INPUT@', '@OUTPUT@'],
> diff --git a/drivers/net/intel/i40e/meson.build b/drivers/net/intel/i40e/meson.build
> index 2973ed1a01..fce5d997ed 100644
> --- a/drivers/net/intel/i40e/meson.build
> +++ b/drivers/net/intel/i40e/meson.build
> @@ -41,7 +41,7 @@ includes += include_directories('base')
> if arch_subdir == 'x86'
> sources += files('i40e_rxtx_vec_sse.c')
>
> - if is_windows and cc.get_id() != 'clang'
> + if is_windows and cc.get_id() == 'gcc'
> cflags += ['-fno-asynchronous-unwind-tables']
> endif
>
> diff --git a/drivers/net/intel/iavf/meson.build b/drivers/net/intel/iavf/meson.build
> index f7eac7c57a..d801527ada 100644
> --- a/drivers/net/intel/iavf/meson.build
> +++ b/drivers/net/intel/iavf/meson.build
> @@ -29,7 +29,7 @@ includes += include_directories('base')
> if arch_subdir == 'x86'
> sources += files('iavf_rxtx_vec_sse.c')
>
> - if is_windows and cc.get_id() != 'clang'
> + if is_windows and cc.get_id() == 'gcc'
> cflags += ['-fno-asynchronous-unwind-tables']
> endif
>
> diff --git a/drivers/net/intel/ice/meson.build b/drivers/net/intel/ice/meson.build
> index cbdf38c1c4..a28d62173c 100644
> --- a/drivers/net/intel/ice/meson.build
> +++ b/drivers/net/intel/ice/meson.build
> @@ -35,7 +35,7 @@ endif
> if arch_subdir == 'x86'
> sources += files('ice_rxtx_vec_sse.c')
>
> - if is_windows and cc.get_id() != 'clang'
> + if is_windows and cc.get_id() == 'gcc'
> cflags += ['-fno-asynchronous-unwind-tables']
> endif
>
> diff --git a/drivers/net/intel/ixgbe/meson.build b/drivers/net/intel/ixgbe/meson.build
> index 0ae12dd5ff..3553b0ffe1 100644
> --- a/drivers/net/intel/ixgbe/meson.build
> +++ b/drivers/net/intel/ixgbe/meson.build
> @@ -27,7 +27,7 @@ deps += ['hash', 'security']
> if arch_subdir == 'x86'
> sources += files('ixgbe_rxtx_vec_sse.c')
> sources += files('ixgbe_recycle_mbufs_vec_common.c')
> - if is_windows and cc.get_id() != 'clang'
> + if is_windows and cc.get_id() == 'gcc'
> cflags += ['-fno-asynchronous-unwind-tables']
> endif
> elif arch_subdir == 'arm'
Out of interest I've just tried compiling up DPDK builds without these
unwind-tables flag, and they all pass, including the mingw build. This is
using:
$ x86_64-w64-mingw32-gcc --version
x86_64-w64-mingw32-gcc (GCC) 13-win32
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Therefore, I wonder if we can just remove all these flags completely for
mingw now? They may only be needed for historical versions.
/Bruce
More information about the dev
mailing list