The rte_pci.h file includes more header files than are actually needed,
which means that all users of it also include those headers. This patch
removes the unneeded headers - adding them elsewhere where other components
were requiring them but not including them directly.

Fixes: c752998b5e2e ("pci: introduce library and driver")
Cc: gaetan.ri...@6wind.com
Cc: sta...@dpdk.org

Signed-off-by: Bruce Richardson <bruce.richard...@intel.com>
---
  drivers/bus/ifpga/rte_bus_ifpga.h | 1 +
  drivers/common/mlx5/mlx5_common.h | 1 +
  lib/librte_pci/rte_pci.h          | 6 ------
  3 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/bus/ifpga/rte_bus_ifpga.h 
b/drivers/bus/ifpga/rte_bus_ifpga.h
index 88a628964..a6eeaaf56 100644
--- a/drivers/bus/ifpga/rte_bus_ifpga.h
+++ b/drivers/bus/ifpga/rte_bus_ifpga.h
@@ -17,6 +17,7 @@ extern "C" {

  #include <rte_bus.h>
  #include <rte_pci.h>
+#include <rte_interrupts.h>
  #include <rte_spinlock.h>

  /** Name of Intel FPGA Bus */
diff --git a/drivers/common/mlx5/mlx5_common.h 
b/drivers/common/mlx5/mlx5_common.h
index 961c60634..16de1b397 100644
--- a/drivers/common/mlx5/mlx5_common.h
+++ b/drivers/common/mlx5/mlx5_common.h
@@ -8,6 +8,7 @@
  #include <stdio.h>

  #include <rte_pci.h>
+#include <rte_debug.h>
  #include <rte_atomic.h>
  #include <rte_log.h>
  #include <rte_kvargs.h>
diff --git a/lib/librte_pci/rte_pci.h b/lib/librte_pci/rte_pci.h
index c87891405..c591af010 100644
--- a/lib/librte_pci/rte_pci.h
+++ b/lib/librte_pci/rte_pci.h
@@ -16,17 +16,11 @@
  extern "C" {
  #endif

-#include <stdio.h>
  #include <stdlib.h>
  #include <limits.h>
-#include <errno.h>
  #include <sys/queue.h>
-#include <stdint.h>
  #include <inttypes.h>

-#include <rte_debug.h>
-#include <rte_interrupts.h>
-
  /** Formatting string for PCI device identifier: Ex: 0000:00:01.0 */
  #define PCI_PRI_FMT "%.4" PRIx16 ":%.2" PRIx8 ":%.2" PRIx8 ".%" PRIx8
  #define PCI_PRI_STR_SIZE sizeof("XXXXXXXX:XX:XX.X")


Patch is generating build errors with meson on my POWER system, though I don't see how they're POWER specific:

Patch is generating build errors on my POWER system:

[17/964] Compiling C object 'lib/76b5a35@@rte_pci@sta/librte_pci_rte_pci.c.o'.
../lib/librte_pci/rte_pci.c: In function ‘rte_pci_device_name’:
../lib/librte_pci/rte_pci.c:94:2: warning: implicit declaration of function ‘RTE_VERIFY’; did you mean ‘RTE_PRIO’? [-Wimplicit-function-declaration]
  RTE_VERIFY(size >= PCI_PRI_STR_SIZE);
  ^~~~~~~~~~
  RTE_PRIO
../lib/librte_pci/rte_pci.c:94:2: warning: nested extern declaration of ‘RTE_VERIFY’ [-Wnested-externs] [18/964] Compiling C object 'drivers/a715181@@tmp_rte_bus_ifpga@sta/bus_ifpga_ifpga_bus.c.o'.
../drivers/bus/ifpga/ifpga_bus.c: In function ‘rte_ifpga_driver_register’:
../drivers/bus/ifpga/ifpga_bus.c:50:2: warning: implicit declaration of function ‘RTE_VERIFY’; did you mean ‘RTE_PRIO’? [-Wimplicit-function-declaration]
  RTE_VERIFY(driver);
  ^~~~~~~~~~
  RTE_PRIO
../drivers/bus/ifpga/ifpga_bus.c:50:2: warning: nested extern declaration of ‘RTE_VERIFY’ [-Wnested-externs]
[332/964] Linking target lib/librte_pci.so.20.0.2.
FAILED: lib/librte_pci.so.20.0.2
cc -o lib/librte_pci.so.20.0.2 'lib/76b5a35@@rte_pci@sta/librte_pci_rte_pci.c.o' -Wl,--no-undefined -Wl,--as-needed -Wl,-O1 -shared -fPIC -Wl,--start-group -Wl,-soname,librte_pci.so.20.0 -Wl,--no-as-needed -pthread -lm -ldl -lnuma lib/librte_eal.so.20.0.2 lib/librte_kvargs.so.20.0.2 -Wl,--end-group -Wl,--version-script=/home/drc/src/dpdk/lib/librte_pci/rte_pci_version.map '-Wl,-rpath,$ORIGIN/' -Wl,-rpath-link,/home/drc/src/dpdk/build/lib lib/76b5a35@@rte_pci@sta/librte_pci_rte_pci.c.o: In function `rte_pci_device_name':
rte_pci.c:(.text+0x38): undefined reference to `RTE_VERIFY'
rte_pci.c:(.text+0x6c): undefined reference to `RTE_VERIFY'
collect2: error: ld returned 1 exit status
[461/964] Compiling C object 'drivers/a715181@@tmp_rte_pmd_mlx5@sta/net_mlx5_mlx5_rxtx.c.o'.
ninja: build stopped: subcommand failed.

Added <rte_debug.h> to the affected files resolves the problem.

Dave

Reply via email to