DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH] drivers: remove invalid options for MSVC
@ 2025-03-12  2:13 Andre Muezerie
  2025-03-12  7:51 ` David Marchand
  2025-03-12 15:18 ` Bruce Richardson
  0 siblings, 2 replies; 6+ messages in thread
From: Andre Muezerie @ 2025-03-12  2:13 UTC (permalink / raw)
  To: Ian Stokes, Bruce Richardson, Vladimir Medvedkin, Anatoly Burakov
  Cc: dev, Andre Muezerie

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@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'
-- 
2.48.1.vfs.0.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drivers: remove invalid options for MSVC
  2025-03-12  2:13 [PATCH] drivers: remove invalid options for MSVC Andre Muezerie
@ 2025-03-12  7:51 ` David Marchand
  2025-03-12 14:22   ` Andre Muezerie
  2025-03-12 15:18 ` Bruce Richardson
  1 sibling, 1 reply; 6+ messages in thread
From: David Marchand @ 2025-03-12  7:51 UTC (permalink / raw)
  To: Andre Muezerie
  Cc: Ian Stokes, Bruce Richardson, Vladimir Medvedkin, Anatoly Burakov, dev

On Wed, Mar 12, 2025 at 3:14 AM Andre Muezerie
<andremue@linux.microsoft.com> 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

I reworked passing the export map in my RFC series.

>
> 2)
> cl : Command line warning D9002 : ignoring unknown
>     option '-fno-asynchronous-unwind-tables'

This part lgtm.

>
> The fix is to remove the unnecessary/invalid option when using MSVC.
>
> Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>


-- 
David Marchand


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drivers: remove invalid options for MSVC
  2025-03-12  7:51 ` David Marchand
@ 2025-03-12 14:22   ` Andre Muezerie
  0 siblings, 0 replies; 6+ messages in thread
From: Andre Muezerie @ 2025-03-12 14:22 UTC (permalink / raw)
  To: David Marchand
  Cc: Ian Stokes, Bruce Richardson, Vladimir Medvedkin, Anatoly Burakov, dev

On Wed, Mar 12, 2025 at 08:51:12AM +0100, David Marchand wrote:
> On Wed, Mar 12, 2025 at 3:14 AM Andre Muezerie
> <andremue@linux.microsoft.com> 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
> 
> I reworked passing the export map in my RFC series.

That's right. I'll remove this part then.

> 
> >
> > 2)
> > cl : Command line warning D9002 : ignoring unknown
> >     option '-fno-asynchronous-unwind-tables'
> 
> This part lgtm.
> 
> >
> > The fix is to remove the unnecessary/invalid option when using MSVC.
> >
> > Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
> 
> 
> -- 
> David Marchand

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drivers: remove invalid options for MSVC
  2025-03-12  2:13 [PATCH] drivers: remove invalid options for MSVC Andre Muezerie
  2025-03-12  7:51 ` David Marchand
@ 2025-03-12 15:18 ` Bruce Richardson
  2025-03-12 15:29   ` David Marchand
  1 sibling, 1 reply; 6+ messages in thread
From: Bruce Richardson @ 2025-03-12 15:18 UTC (permalink / raw)
  To: Andre Muezerie; +Cc: Ian Stokes, Vladimir Medvedkin, Anatoly Burakov, dev

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@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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drivers: remove invalid options for MSVC
  2025-03-12 15:18 ` Bruce Richardson
@ 2025-03-12 15:29   ` David Marchand
  2025-03-12 15:49     ` Bruce Richardson
  0 siblings, 1 reply; 6+ messages in thread
From: David Marchand @ 2025-03-12 15:29 UTC (permalink / raw)
  To: Bruce Richardson
  Cc: Andre Muezerie, Ian Stokes, Vladimir Medvedkin, Anatoly Burakov, dev

On Wed, Mar 12, 2025 at 4:19 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
> > 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.

Here is the original issue:
https://inbox.dpdk.org/dev/CAJFAV8z3qFhT9Vv5xOpLhi74BYAht2YCfL2ffLrmei4hfSG5jg@mail.gmail.com/

It happened with mingw 8.1.0 apparently.


-- 
David Marchand


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drivers: remove invalid options for MSVC
  2025-03-12 15:29   ` David Marchand
@ 2025-03-12 15:49     ` Bruce Richardson
  0 siblings, 0 replies; 6+ messages in thread
From: Bruce Richardson @ 2025-03-12 15:49 UTC (permalink / raw)
  To: David Marchand
  Cc: Andre Muezerie, Ian Stokes, Vladimir Medvedkin, Anatoly Burakov, dev

On Wed, Mar 12, 2025 at 04:29:40PM +0100, David Marchand wrote:
> On Wed, Mar 12, 2025 at 4:19 PM Bruce Richardson
> <bruce.richardson@intel.com> wrote:
> > > 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.
> 
> Here is the original issue:
> https://inbox.dpdk.org/dev/CAJFAV8z3qFhT9Vv5xOpLhi74BYAht2YCfL2ffLrmei4hfSG5jg@mail.gmail.com/
> 
> It happened with mingw 8.1.0 apparently.
> 
Thanks.

Given how new and unpolished windows support is generally, I don't believe
we should need to support many old versions of the mingw compiler. This is
especially true given the native windows build support that is being worked
on.

Looking at some CI logs[1], I believe mingw v10 is what is being used in the
CI. I might try doing a patch to remove these flags and see what the CI
makes of it. I'm not sure how many CI jobs in the various places (IOL lab,
Intel, etc.) do mingw testing, to really know what our min version is.

/Bruce

[1] https://github.com/ovsrobot/dpdk/actions/runs/13802361658/job/38606948026

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-03-12 15:50 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-03-12  2:13 [PATCH] drivers: remove invalid options for MSVC Andre Muezerie
2025-03-12  7:51 ` David Marchand
2025-03-12 14:22   ` Andre Muezerie
2025-03-12 15:18 ` Bruce Richardson
2025-03-12 15:29   ` David Marchand
2025-03-12 15:49     ` Bruce Richardson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).