On 1/20/2021 5:51 PM, Ferruh Yigit wrote:
On 1/20/2021 10:05 AM, Ali Alnubani wrote:
For info, I don't reproduce the compilation issue on my machine.

My build system has been upgraded from fc31 to fc32 so I guess this has
something to do with it.


I can reproduce with (Fedora MinGW 9.2.1-6.fc32), but not with (Fedora MinGW 10.2.1-2.fc33).


First of all, for the patch @Tal provided its link, the windows build and the mingw build errors are different. And the windows build error should be already fixed by a patch that squashed in next-net (https://patches.dpdk.org/patch/86804/).


And for the mingw, I have same result with Ali, I can reproduce with (Fedora MinGW 9.2.1-6.fc32).

But different from the CI, I am getting the error [1] for all following files:
rte_random.c
i40e_rxtx_vec_sse.c
i40e_rxtx_vec_avx512.c
i40e_rxtx_vec_avx2.c
rte_ethdev.c

[1] Error: invalid register for .seh_savexmm


Build log for above errors: https://pastebin.com/jD4jRVzL


There is a stackoverflow entry for it:
https://stackoverflow.com/questions/43152633/invalid-register-for-seh-savexmm-in-cygwin

If I use '-fno-asynchronous-unwind-tables' as suggested there, the build works fine.

So the problem may not be just 'i40e_rxtx_vec_avx512.c'.


If I change the machine type from 'native' to 'corei7' [2], the build error reduced to only 'i40e_rxtx_vec_avx512.c', so the problem seems happens when avx512 is supported by CPU, in this case compiler seems has a defect. And since for 'i40e_rxtx_vec_avx512.c' the '-march=skylake-avx512' explicitly set can cause the problem seen in all machines.

[2]
  diff --git a/config/x86/cross-mingw b/config/x86/cross-mingw
  index 4c15a7fa2e..7cee238add 100644
  --- a/config/x86/cross-mingw
  +++ b/config/x86/cross-mingw
  @@ -9,5 +9,5 @@ pkgconfig = 'x86_64-w64-mingw32-pkg-config'
   [host_machine]
   system = 'windows'
   cpu_family = 'x86_64'
  -cpu = 'native'
  +cpu = 'corei7'
   endian = 'little'



@Ranjit, @Pallavi,
Are you building using mingw, and if so are you observing same problem?

Reply via email to