On Mon, Sep 9, 2024 at 2:05 PM Mattias Rönnblom <hof...@lysator.liu.se> wrote:
> > Mattias, there are issues reported by the CI (compilation on Ubuntu
> > 22.04 in GHA, and unit test failure in UNH), please have a look.
> >
> >
>
> Standard practice in DPDK header files is the following:
>
> --
> /* rte_bar.h */
> #ifdef __cplusplus
> extern "C" {
> #endif
>
> #include <rte_foo.h>
>
> void
> rte_foo_do(void);
>
> /../
> --
>
> That seems not like best practice to me, since rte_bar.h is messing
> around with linkage of constructs of any files included. In particular,
> it prohibits replacing _Generic with C++ function overloading, in C++ TUs.
>
> What one should do is to have extern "C" linkage only on functions which
> the include file in question (e.g., rte_foo.h) itself declares.

This is probably not the best practice, but since you intend to fix
it, it will be perfect afterwards :-).


>
> --
> /* rte_bar.h */
> #include <rte_foo.h>
>
> #ifdef __cplusplus
> extern "C" {
> #endif
>
> void
> rte_foo_do(void);
>
> /../
> --
>
> There are 259 header files in the DPDK repo in need of fixing.
>
> Should the fix be 259 patches, or something smaller? One large patch, or
> a patch per library, or something else. Please advise, over.

The change seems mechanical, so one single change is ok.


-- 
David Marchand

Reply via email to