01/04/2019 16:56, Ferruh Yigit: > On 4/1/2019 3:39 PM, Bruce Richardson wrote: > > On Mon, Apr 01, 2019 at 01:51:38PM +0100, Ferruh Yigit wrote: > >> On 3/31/2019 4:52 PM, Thomas Monjalon wrote: > >>> 26/03/2019 10:50, Ferruh Yigit: > >>>>> Wenzhuo Lu (8): > >>>>> net/ice: fix Tx function setting > >>>>> net/ice: add pointer for queue buffer release > >>>>> net/ice: support vector SSE in RX > >>>>> net/ice: support Rx scatter SSE vector > >>>>> net/ice: support Tx SSE vector > >>>>> net/ice: support Rx AVX2 vector > >>>>> net/ice: support Rx scatter AVX2 vector > >>>>> net/ice: support vector AVX2 in TX > >>>> > >>>> This version (v7) pulled from next-net-intel to next-net. > >>> > >>> I assume these patches have been tested, or at least compiled. > >>> However, when running devtools/test-meson-builds.sh, there is a > >>> compilation error for build-x86-default: > >>> > >>> In file included from ../drivers/net/ice/ice_ethdev.h:10: > >>> rte_ethdev_pci.h:38:10: fatal error: 'rte_pci.h' file not found > >> > >> I tested this with meson but not able to catch the issue. Perhaps for my > >> case > >> dependencies were build fast enough to cause a problem. > > > > That should be a problem with the meson builds. While with make builds, the > > headers files are picked up after they are copied to the "include" > > directory by the build process, in meson no such copying occurs and the > > header files are picked up by having the paths to them passed in the > > "dependency object" to each build. If the dependency does not exist then > > the build will never pass, irrespective of ordering, and if the dependency > > exists, the build will always find the header in its original location. > > I was checking this and recognized that no copying is happening. And I can see > many PMDs are using this header [1], not sure why ice is failing. > > > > > [The biggest benefit of this is that when building with ninja there are no > > dependencies between the individual .c files - each one can be compiled > > in parallel with all the others. It's only at the linking step that we need > > to wait for previous jobs to complete] > > > > In terms of this specific error with the header - did it get root caused? > > Since it occurs on the "default" path, I'd suggest the fallback handling in > > the meson.build file for the absense of AVX may be faulty, e.g. are you > > replacing c flags or dependencies rather than appending to them? > > Trying to find out the root cause, but as you said it occurs on the 'default' > path only, and taking into account that there is not copying dependent > headers, > I am not able to find it yet, checking.
Guys! Are you kidding me? I already described the root cause and the possible fixes: http://mails.dpdk.org/archives/dev/2019-March/128375.html This is in the case AVX2 being chosen at runtime. rte_ethdev_pci.h is included in a header file. The dependencies object is missing static_rte_pci and static_rte_bus_pci. I chose to just use rte_ethdev_driver.h instead.