On 6/3/2020 11:16 AM, Thomas Monjalon wrote: > 03/06/2020 11:48, Juraj Linkeš: >> Directive #include <file> in gcc implementation searches for files >> in a standard list of system directories, which leads to a sporadici >> build error on Taishan arm machines: >> /tmp/openvpp-testing/dpdk/lib/librte_ethdev/rte_ethdev.h:4287:10: >> fatal error: rte_ethdev_core.h: >> No such file or directory #include <rte_ethdev_core.h> > > Would be interesting to know why nobody else hit such error?
I can't see why this is happening, in the 'mk/rte.lib.mk' we have following: " install: _preinstall build _postinstall build: _preinstall " Which should cause the library header files installed before building .c files in that library. So when compiling 'rte_class_eth.c', the header files should be already in install folder. I can see how/why changing to "" fixes the issue but I am not sure about this fix. "rte_ethdev.h" is a public header file, that applications will include it in their applications. In the public library it is more proper to have other includes from system folder, using format <>. Again, I can't see why it is failing but I believe we should find another solution for _internal_ build error. A very simple solution can be following, but that is also not good, since it solves the issue by creating a dependency to the order of the header includes: diff --git a/lib/librte_ethdev/rte_class_eth.c b/lib/librte_ethdev/rte_class_eth.c index 6338355e25..3030c49020 100644 --- a/lib/librte_ethdev/rte_class_eth.c +++ b/lib/librte_ethdev/rte_class_eth.c @@ -10,8 +10,8 @@ #include <rte_kvargs.h> #include <rte_log.h> -#include "rte_ethdev.h" #include "rte_ethdev_core.h" +#include "rte_ethdev.h" #include "rte_ethdev_driver.h" #include "ethdev_private.h" > > >> Fix this by replacing the directive with #include "file" which searches >> for files first in the directory containing the current file and other >> directories only after that. >> >> Signed-off-by: Juraj Linkeš <juraj.lin...@pantheon.tech> > > What about #include <rte_ethdev_trace.h> ? > > Except this, > Acked-by: Thomas Monjalon <tho...@monjalon.net> > > > I would change the title to be more generic (nothing specific to gcc or Arm > here): > ethdev: fix local include > > It needs to be backported, so these lines are required: > Fixes: 7f0a669e7b04 ("ethdev: add allocation helper for virtual > drivers") > Fixes: dcd5c8112bc3 ("ethdev: add PCI driver helpers") > Fixes: ffc905f3b856 ("ethdev: separate driver APIs") > Fixes: 331c447ad913 ("ethdev: separate internal structures into own > header") > Cc: sta...@dpdk.org > > >