Bug 1003 - unbalanced braces in header files for extern C declarations causing C++ compilation errors
Summary: unbalanced braces in header files for extern C declarations causing C++ compi...
Status: UNCONFIRMED
Alias: None
Product: DPDK
Classification: Unclassified
Component: meson (show other bugs)
Version: unspecified
Hardware: All All
: Normal normal
Target Milestone: ---
Assignee: dev
URL:
Depends on:
Blocks:
 
Reported: 2022-05-02 20:12 CEST by Scott Wasson
Modified: 2023-11-09 06:51 CET (History)
1 user (show)



Attachments

Description Scott Wasson 2022-05-02 20:12:05 CEST
This was introduced in DPDK 20.11.5.  20.11.4 did not have these issues:

There are a few header files that have multiple extern C declarations, and some of them have unbalanced braces.  This causes C++ compiler errors.

To find them all:

 $ find . -name '*.h'|xargs grep 'extern "C' > foo
 $ find . -name '*.h'|xargs grep 'extern "C'|uniq > bar
 $ diff foo bar
102d101
< ./lib/librte_eventdev/rte_eventdev_pmd.h:extern "C" {
105d103
< ./lib/librte_eventdev/rte_eventdev_pmd_pci.h:extern "C" {
110d107
< ./lib/librte_eventdev/rte_eventdev_pmd_vdev.h:extern "C" {
153d149
< ./lib/librte_ethdev/rte_ethdev_driver.h:extern "C" {

rte_eventdev_pmd.h merely has two nested extern C blocks.

rte_eventdev_pmd_pci.h has two nested extern C blocks, but only one closing brace at the bottom of the file.

The same is true for rte_ethdev_driver.h and rte_eventdev_pmd_vdev.h.

The latter three cause compilation errors when included from C++ code.

Note You need to log in before you can comment on or make changes to this bug.