eal: fix C++11 compilation
authorKonstantin Ananyev <konstantin.ananyev@intel.com>
Fri, 6 Mar 2015 15:59:47 +0000 (15:59 +0000)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 9 Mar 2015 16:38:41 +0000 (17:38 +0100)
When compiling C++11-code or above (--std=c++11), the build fails with
lots of

  rte_eth_ctrl.h:517:3: note: in expansion of macro RTE_ALIGN
    (RTE_ALIGN(RTE_ETH_FLOW_MAX, UINT32_BIT)/UINT32_BIT)
    ^

When reading the GCC info pages, I get the feeling that __typeof__ is
a better choice, and that indeed works when including the headers in
C++ files (--std=c++11).

Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
lib/librte_eal/common/include/rte_common.h

index 8ac940c..4971049 100644 (file)
@@ -51,6 +51,14 @@ extern "C" {
 #include <errno.h>
 #include <limits.h>
 
+#ifndef typeof
+#define typeof __typeof__
+#endif
+
+#ifndef asm
+#define asm __asm__
+#endif
+
 /*********** Macros to eliminate unused variable warnings ********/
 
 /**