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 <andre...@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@_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