This patchset expands upon the exiting chkincs infrastructure to build a C++ test application as well as the existing C test app, which helps catch any build errors when the public DPDK headers are included in C++ code. The rest of this patchset fixes the errors caught by this additional check - mostly missing casts, but also one use of "new" as a variable name, and one missing closing brace for an 'extern "C"' block.
NOTE: the most complicated changes are in the 6th patch, where there were linux headers included which were not C++ compatible. This patch moves the inclusion of those headers to non-public locations in the code to remove those issues, but I am uncertain what the knock-on impacts of this change may be. Therefore, I ask particular review from vhost/vdpa maintainers to see if there is a better solution to this issue Bruce Richardson (7): eal: fix header build with C++ eventdev: fix header build with C++ graph: add explicit cast to allow C++ build ipsec: : add explicit cast to allow C++ build table: add explicit casts for C++ compatibility vhost: remove non-C++ compatible includes buildtools/chkincs: test headers for C++ compatibility buildtools/chkincs/main.cpp | 4 +++ buildtools/chkincs/meson.build | 20 +++++++++++++++ drivers/net/vhost/rte_eth_vhost.c | 2 ++ drivers/vdpa/ifc/ifcvf_vdpa.c | 2 ++ drivers/vdpa/mlx5/mlx5_vdpa.h | 1 + lib/eal/include/generic/rte_ticketlock.h | 14 +++++------ lib/eal/include/rte_trace_point.h | 2 +- lib/eventdev/rte_event_timer_adapter.h | 3 +++ lib/eventdev/rte_eventdev.h | 2 +- lib/graph/rte_graph_worker.h | 2 +- lib/ipsec/rte_ipsec_group.h | 4 +-- lib/table/rte_table_hash_func.h | 32 ++++++++++++------------ lib/vhost/rte_vhost.h | 4 --- 13 files changed, 60 insertions(+), 32 deletions(-) create mode 100644 buildtools/chkincs/main.cpp -- 2.32.0