On Wed, Jan 20, 2021 at 7:26 AM Tal Shnaiderman <tal...@nvidia.com> wrote:
> > The patch "add AVX512 vector path" also caused a build failure when cross
> > compiling on Linux using mingw, and it's still reproducing in next-net
> > (517969c95).
> >
> > ```
> > $ meson --werror --buildtype=debugoptimized --cross-file config/x86/cross-
> > mingw -Dexamples=helloworld build  && ninja-build -C build -j32
> >
> > [221/232] Generating symbol file lib/librte_mbuf-21.dll.p/librte_mbuf-
> > 21.dll.symbols
> > [222/232] Generating symbol file lib/librte_hash-21.dll.p/librte_hash-
> > 21.dll.symbols
> > [223/232] Linking target lib/librte_net-21.dll [224/232] Compiling C object
> > drivers/net/i40e/libi40e_avx512_lib.a.p/i40e_rxtx_vec_avx512.c.obj
> > FAILED: drivers/net/i40e/libi40e_avx512_lib.a.p/i40e_rxtx_vec_avx512.c.obj
> > ...
> > drivers/net/i40e/libi40e_avx512_lib.a.p/i40e_rxtx_vec_avx512.c.obj.d -o
> > drivers/net/i40e/libi40e_avx512_lib.a.p/i40e_rxtx_vec_avx512.c.obj -c
> > ../../root/dpdk/drivers/net/i40e/i40e_rxtx_vec_avx512.c
> > {standard input}: Assembler messages:
> > {standard input}:112: Error: invalid register for .seh_savexmm {standard
> > input}:114: Error: invalid register for .seh_savexmm ...
> > ...
> > {standard input}:25351: Error: invalid register for .seh_savexmm {standard
> > input}:25352: Error: invalid register for .seh_savexmm [225/232] Generating
> > symbol file lib/librte_net-21.dll.p/librte_net-21.dll.symbols
> > ninja: build stopped: subcommand failed.
> > ```
> >
> > OS: Fedora 32
> > Meson: 0.55.3
> > MinGW: Fedora MinGW 9.2.1-6.fc32
> >
> > - Ali
>
> Those errors were detected in the CI tests for this patch [1], we should pay 
> more attention to those now that 2 PMDs are supported on Windows.
>
> [1]: https://lab.dpdk.org/results/dashboard/patchsets/15164/

I won't grmbl about how CI reports are not being looked at (or maybe I
just did :)).

This simple patch seems to work for me:

diff --git a/drivers/net/i40e/meson.build b/drivers/net/i40e/meson.build
index c0acdf4fd4..c9a1a50407 100644
--- a/drivers/net/i40e/meson.build
+++ b/drivers/net/i40e/meson.build
@@ -54,7 +54,7 @@ if arch_subdir == 'x86'
                cc.has_argument('-mavx512f') and
                cc.has_argument('-mavx512bw'))

-       if i40e_avx512_cpu_support == true or i40e_avx512_cc_support == true
+       if not is_windows and (i40e_avx512_cpu_support == true or
i40e_avx512_cc_support == true)
                cflags += ['-DCC_AVX512_SUPPORT']
                avx512_args = [cflags, '-mavx512f', '-mavx512bw']
                if cc.has_argument('-march=skylake-avx512')


If nobody has a better fix, I'll send it later.

-- 
David Marchand

Reply via email to