lib: fix missing includes in exported headers
authorAdrien Mazarguil <adrien.mazarguil@6wind.com>
Thu, 21 Dec 2017 13:00:04 +0000 (14:00 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 16 Jan 2018 23:31:05 +0000 (00:31 +0100)
Many exported headers rely on definitions found in rte_config.h without
including it, as shown by the following command:

 grep -L '^#include <rte_config.h>' -- \
  $(grep -Rl \
    $(sed -n '/^#define \([^ ]\+\).*$/{s//\1/;H;};${x;s/\n//;s/\n/\\|/g;p;}' \
      build/include/rte_config.h) \
    -- build/include/)

We cannot assume external applications will include rte_config.h on their
own, neither directly nor through a -include parameter like DPDK does
internally.

This not only causes obvious compilation failures that can be reproduced
with check-includes.sh such as:

 [...]/rte_memory.h:88:43: error: ‘RTE_CACHE_LINE_SIZE’ was not declared in
     this scope
  #define __rte_cache_aligned __rte_aligned(RTE_CACHE_LINE_SIZE)
                                            ^

It also results in less visible issues, for instance rte_hash_crc.h relying
on RTE_ARCH_X86_64's presence to provide dedicated inline functions.

This patch partially reverts the commit below and adds missing include
lines to the remaining files.

Fixes: f1a7a5c5f404 ("remove include of generated config header")
Cc: stable@dpdk.org
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
41 files changed:
drivers/net/avp/rte_avp_common.h
lib/librte_cmdline/cmdline_cirbuf.h
lib/librte_cryptodev/rte_cryptodev.h
lib/librte_cryptodev/rte_cryptodev_pmd.h
lib/librte_eal/common/include/arch/x86/rte_atomic.h
lib/librte_eal/common/include/arch/x86/rte_byteorder.h
lib/librte_eal/common/include/arch/x86/rte_cycles.h
lib/librte_eal/common/include/arch/x86/rte_memcpy.h
lib/librte_eal/common/include/arch/x86/rte_vect.h
lib/librte_eal/common/include/generic/rte_byteorder.h
lib/librte_eal/common/include/rte_bitmap.h
lib/librte_eal/common/include/rte_common.h
lib/librte_eal/common/include/rte_dev.h
lib/librte_eal/common/include/rte_eal.h
lib/librte_eal/common/include/rte_eal_memconfig.h
lib/librte_eal/common/include/rte_keepalive.h
lib/librte_eal/common/include/rte_lcore.h
lib/librte_eal/common/include/rte_log.h
lib/librte_eal/common/include/rte_memory.h
lib/librte_eal/common/include/rte_service.h
lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h
lib/librte_ether/rte_ethdev.h
lib/librte_ether/rte_ethdev_pci.h
lib/librte_ether/rte_ethdev_vdev.h
lib/librte_eventdev/rte_eventdev.h
lib/librte_eventdev/rte_eventdev_pmd.h
lib/librte_eventdev/rte_eventdev_pmd_pci.h
lib/librte_eventdev/rte_eventdev_pmd_vdev.h
lib/librte_hash/rte_fbk_hash.h
lib/librte_hash/rte_hash_crc.h
lib/librte_hash/rte_jhash.h
lib/librte_hash/rte_thash.h
lib/librte_ip_frag/rte_ip_frag.h
lib/librte_lpm/rte_lpm.h
lib/librte_mbuf/rte_mbuf.h
lib/librte_member/rte_member.h
lib/librte_mempool/rte_mempool.h
lib/librte_ring/rte_ring.h
lib/librte_table/rte_lru.h
lib/librte_table/rte_lru_x86.h
lib/librte_timer/rte_timer.h

index 54437e9..81dfe5e 100644 (file)
@@ -63,6 +63,7 @@
 #else
 #include <stdint.h>
 #include <rte_common.h>
+#include <rte_config.h>
 #include <rte_memory.h>
 #include <rte_ether.h>
 #include <rte_atomic.h>
index 6321dec..87407ef 100644 (file)
@@ -61,6 +61,8 @@
 #ifndef _CIRBUF_H_
 #define _CIRBUF_H_
 
+#include <rte_config.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
index dade554..ed92f98 100644 (file)
@@ -49,6 +49,7 @@ extern "C" {
 #include "rte_crypto.h"
 #include "rte_dev.h"
 #include <rte_common.h>
+#include <rte_config.h>
 
 extern const char **rte_cyptodev_names;
 
index 744405e..c3bf91c 100644 (file)
@@ -46,6 +46,7 @@ extern "C" {
 
 #include <string.h>
 
+#include <rte_config.h>
 #include <rte_dev.h>
 #include <rte_malloc.h>
 #include <rte_mbuf.h>
index 8469f97..36cfabc 100644 (file)
@@ -11,6 +11,7 @@ extern "C" {
 
 #include <stdint.h>
 #include <rte_common.h>
+#include <rte_config.h>
 #include <emmintrin.h>
 #include "generic/rte_atomic.h"
 
index 56b0a31..a2dfecc 100644 (file)
@@ -11,6 +11,7 @@ extern "C" {
 
 #include <stdint.h>
 #include <rte_common.h>
+#include <rte_config.h>
 #include "generic/rte_byteorder.h"
 
 #ifndef RTE_BYTE_ORDER
index 1bb3e1d..b95bece 100644 (file)
@@ -47,6 +47,7 @@ extern int rte_cycles_vmware_tsc_map;
 #include <rte_branch_prediction.h>
 #endif
 #include <rte_common.h>
+#include <rte_config.h>
 
 static inline uint64_t
 rte_rdtsc(void)
index c166fb0..cc140ec 100644 (file)
@@ -16,6 +16,7 @@
 #include <string.h>
 #include <rte_vect.h>
 #include <rte_common.h>
+#include <rte_config.h>
 
 #ifdef __cplusplus
 extern "C" {
index a7d531d..cf4e9db 100644 (file)
@@ -12,6 +12,7 @@
  */
 
 #include <stdint.h>
+#include <rte_config.h>
 #include "generic/rte_vect.h"
 
 #if (defined(__ICC) || (__GNUC__ == 4 &&  __GNUC_MINOR__ < 4))
index f316763..9bed85c 100644 (file)
@@ -22,6 +22,7 @@
 #endif
 
 #include <rte_common.h>
+#include <rte_config.h>
 
 /*
  * Compile-time endianness detection
index 9425ace..7d4935f 100644 (file)
@@ -37,6 +37,7 @@ extern "C" {
 
 #include <string.h>
 #include <rte_common.h>
+#include <rte_config.h>
 #include <rte_debug.h>
 #include <rte_memory.h>
 #include <rte_branch_prediction.h>
index 9b9294e..c7803e4 100644 (file)
@@ -22,6 +22,8 @@ extern "C" {
 #include <errno.h>
 #include <limits.h>
 
+#include <rte_config.h>
+
 #ifndef typeof
 #define typeof __typeof__
 #endif
index 9342e0c..8088dcc 100644 (file)
@@ -49,6 +49,7 @@ extern "C" {
 #include <stdio.h>
 #include <sys/queue.h>
 
+#include <rte_config.h>
 #include <rte_log.h>
 
 __attribute__((format(printf, 2, 0)))
index 02fa109..2aba2c8 100644 (file)
@@ -14,6 +14,7 @@
 #include <stdint.h>
 #include <sched.h>
 
+#include <rte_config.h>
 #include <rte_per_lcore.h>
 #include <rte_bus.h>
 
index e195b27..29fa0b6 100644 (file)
@@ -5,6 +5,7 @@
 #ifndef _RTE_EAL_MEMCONFIG_H_
 #define _RTE_EAL_MEMCONFIG_H_
 
+#include <rte_config.h>
 #include <rte_tailq.h>
 #include <rte_memory.h>
 #include <rte_memzone.h>
index 88ad8e4..e9f8f08 100644 (file)
@@ -39,6 +39,7 @@
 #ifndef _KEEPALIVE_H_
 #define _KEEPALIVE_H_
 
+#include <rte_config.h>
 #include <rte_memory.h>
 
 #ifndef RTE_KEEPALIVE_MAXCORES
index 223658b..d84bcff 100644 (file)
@@ -11,6 +11,7 @@
  * API for lcore and socket manipulation
  *
  */
+#include <rte_config.h>
 #include <rte_per_lcore.h>
 #include <rte_eal.h>
 #include <rte_launch.h>
index 83faddf..9029c78 100644 (file)
@@ -22,6 +22,7 @@ extern "C" {
 #include <stdarg.h>
 
 #include <rte_common.h>
+#include <rte_config.h>
 
 struct rte_log_dynamic_type;
 
index ed5a3be..302f865 100644 (file)
@@ -20,6 +20,7 @@ extern "C" {
 #endif
 
 #include <rte_common.h>
+#include <rte_config.h>
 
 __extension__
 enum rte_page_sizes {
index 85e964b..02b1512 100644 (file)
@@ -31,6 +31,7 @@ extern "C" {
 #include <stdint.h>
 #include <sys/queue.h>
 
+#include <rte_config.h>
 #include <rte_lcore.h>
 
 #define RTE_SERVICE_NAME_MAX 32
index f0eeefe..a5ba564 100644 (file)
@@ -152,6 +152,7 @@ extern "C" {
 #include <rte_devargs.h>
 #include <rte_errno.h>
 #include <rte_common.h>
+#include <rte_config.h>
 
 #include "rte_ether.h"
 #include "rte_eth_ctrl.h"
index 722075e..ad64a16 100644 (file)
@@ -37,6 +37,7 @@
 #include <rte_malloc.h>
 #include <rte_pci.h>
 #include <rte_bus_pci.h>
+#include <rte_config.h>
 #include <rte_ethdev.h>
 
 /**
index ff92e6e..feb5a3e 100644 (file)
@@ -34,6 +34,7 @@
 #ifndef _RTE_ETHDEV_VDEV_H_
 #define _RTE_ETHDEV_VDEV_H_
 
+#include <rte_config.h>
 #include <rte_malloc.h>
 #include <rte_bus_vdev.h>
 #include <rte_ethdev.h>
index f1949ff..9134b49 100644 (file)
@@ -239,6 +239,7 @@ extern "C" {
 #endif
 
 #include <rte_common.h>
+#include <rte_config.h>
 #include <rte_memory.h>
 #include <rte_errno.h>
 
index c2fd09c..b485a57 100644 (file)
@@ -20,6 +20,7 @@ extern "C" {
 #include <string.h>
 
 #include <rte_common.h>
+#include <rte_config.h>
 #include <rte_dev.h>
 #include <rte_log.h>
 #include <rte_malloc.h>
index 32a077e..8fb6138 100644 (file)
@@ -20,6 +20,7 @@ extern "C" {
 
 #include <string.h>
 
+#include <rte_config.h>
 #include <rte_eal.h>
 #include <rte_lcore.h>
 #include <rte_pci.h>
index e1e1cd9..8c64a06 100644 (file)
@@ -19,6 +19,7 @@ extern "C" {
 
 #include <string.h>
 
+#include <rte_config.h>
 #include <rte_debug.h>
 #include <rte_eal.h>
 #include <rte_bus_vdev.h>
index ad47280..0915878 100644 (file)
@@ -25,6 +25,7 @@ extern "C" {
 
 #include <string.h>
 
+#include <rte_config.h>
 #ifndef RTE_FBK_HASH_FUNC_DEFAULT
 #if defined(RTE_ARCH_X86) || defined(RTE_MACHINE_CPUFLAG_CRC32)
 #include <rte_hash_crc.h>
index e61d57d..479f84b 100644 (file)
@@ -16,6 +16,7 @@ extern "C" {
 #endif
 
 #include <stdint.h>
+#include <rte_config.h>
 #include <rte_cpuflags.h>
 #include <rte_branch_prediction.h>
 #include <rte_common.h>
index 3eca138..42c4568 100644 (file)
@@ -48,6 +48,7 @@ extern "C" {
 #include <string.h>
 #include <limits.h>
 
+#include <rte_config.h>
 #include <rte_log.h>
 #include <rte_byteorder.h>
 
index 4fa5e07..a6ddb7b 100644 (file)
@@ -53,6 +53,7 @@ extern "C" {
 
 #include <stdint.h>
 #include <rte_byteorder.h>
+#include <rte_config.h>
 #include <rte_ip.h>
 #include <rte_common.h>
 
index b24bade..b3f3f78 100644 (file)
@@ -19,6 +19,7 @@ extern "C" {
 #include <stdint.h>
 #include <stdio.h>
 
+#include <rte_config.h>
 #include <rte_malloc.h>
 #include <rte_memory.h>
 #include <rte_ip.h>
index 12c22a6..2155044 100644 (file)
@@ -16,6 +16,7 @@
 #include <stdlib.h>
 #include <rte_branch_prediction.h>
 #include <rte_byteorder.h>
+#include <rte_config.h>
 #include <rte_memory.h>
 #include <rte_common.h>
 #include <rte_vect.h>
index 6cba632..a827e6e 100644 (file)
@@ -62,6 +62,7 @@
 
 #include <stdint.h>
 #include <rte_common.h>
+#include <rte_config.h>
 #include <rte_mempool.h>
 #include <rte_memory.h>
 #include <rte_atomic.h>
index b778767..ab2b232 100644 (file)
@@ -52,6 +52,7 @@ extern "C" {
 #include <stdint.h>
 
 #include <rte_common.h>
+#include <rte_config.h>
 
 /** The set ID type that stored internally in hash table based set summary. */
 typedef uint16_t member_set_t;
index 721227f..e21026a 100644 (file)
@@ -69,6 +69,7 @@
 #include <inttypes.h>
 #include <sys/queue.h>
 
+#include <rte_config.h>
 #include <rte_spinlock.h>
 #include <rte_log.h>
 #include <rte_debug.h>
index e924438..7069d52 100644 (file)
@@ -96,6 +96,7 @@ extern "C" {
 #include <sys/queue.h>
 #include <errno.h>
 #include <rte_common.h>
+#include <rte_config.h>
 #include <rte_memory.h>
 #include <rte_lcore.h>
 #include <rte_atomic.h>
index 7c45e68..88229d8 100644 (file)
@@ -9,6 +9,7 @@
 extern "C" {
 #endif
 
+#include <rte_config.h>
 #ifdef RTE_ARCH_X86_64
 #include "rte_lru_x86.h"
 #elif defined(RTE_ARCH_ARM64)
index 372a09f..7a67ee8 100644 (file)
@@ -11,6 +11,8 @@ extern "C" {
 
 #include <stdint.h>
 
+#include <rte_config.h>
+
 #ifndef RTE_TABLE_HASH_LRU_STRATEGY
 #define RTE_TABLE_HASH_LRU_STRATEGY                        2
 #endif
index 7d3998b..9b95cd2 100644 (file)
@@ -38,6 +38,7 @@
 #include <stdint.h>
 #include <stddef.h>
 #include <rte_common.h>
+#include <rte_config.h>
 
 #ifdef __cplusplus
 extern "C" {