[dpdk-dev,PATCHv2] headers: typeof -> __typeof__ to unbreak C++11 code
Commit Message
v2:
Instead of changing all the affected files,
define 'typeofi' and 'asm' if needed.
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).
There are some typeof()s left in C files, the patch only touches the
public API.
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 | 9 +++++++++
1 file changed, 9 insertions(+)
Comments
2015-03-06 15:59, Konstantin Ananyev:
> v2:
> Instead of changing all the affected files,
> define 'typeofi' and 'asm' if needed.
>
> 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).
>
> There are some typeof()s left in C files, the patch only touches the
> public API.
>
> Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
> Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Applied, thanks
@@ -51,6 +51,15 @@ 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 ********/
/**