On Thu, Jan 21, 2021 at 6:02 AM Kadam, Pallavi <pallavi.ka...@intel.com> wrote: > On 1/20/2021 11:21 PM, Ferruh Yigit wrote: > > 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 > > > 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? >
Thanks Ferruh. > We usually build using Clang. However, we verify with mingw as well before > submitting the patch. > As mentioned in the patch [1] comments, we replaced #include x86intrin.h with > <rte_vect.h> in the file i40e_rxtx_vec_avx2.c > And this helped fixing an error related to conflicting types for > '__m_prefethw' with Clang on Windows. > I was able to build this patch using Clang as well as mingw. > [1] http://patches.dpdk.org/patch/84770/ > > I verified patch fix submitted by Rong, Leyi, it builds successfully with > Clang. > However, I am getting same error "Error: invalid register for .seh_savexmm" > using mingw for 'i40e_rxtx_vec_avx512.c' file. The patch I sent https://patchwork.dpdk.org/patch/86999/ is not enough. I have neither time nor environment to find a fix. For now I simply stopped checking mingw builds. Will it get fixed? -- David Marchand