Re: git: 11ace56fa030 - main - contrib/libxo: fix API header files inclusions in C++ source files
- Reply: Phil Shafer : "Re: git: 11ace56fa030 - main - contrib/libxo: fix API header files inclusions in C++ source files"
- In reply to: Ka Ho Ng : "git: 11ace56fa030 - main - contrib/libxo: fix API header files inclusions in C++ source files"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 10 Sep 2025 04:31:29 UTC
On Sun, Sep 07, 2025 at 06:42:17PM +0000, Ka Ho Ng wrote:
> The branch main has been updated by khng:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=11ace56fa030185025936c795d5cf7c57b266835
>
> commit 11ace56fa030185025936c795d5cf7c57b266835
> Author: ShengYi Hung <aokblast@FreeBSD.org>
> AuthorDate: 2025-09-07 18:33:01 +0000
> Commit: Ka Ho Ng <khng@FreeBSD.org>
> CommitDate: 2025-09-07 18:33:01 +0000
>
> contrib/libxo: fix API header files inclusions in C++ source files
>
> C++ source files need `extern "C"` to disable C++ name mangling.
>
> MFC after: 1 week
> Reviewed by: aokblast (previous version), phil, imp (previous version)
> Differential Revision: https://reviews.freebsd.org/D47930
> ---
> contrib/libxo/libxo/xo.h | 8 ++++++++
> contrib/libxo/libxo/xo_encoder.h | 8 ++++++++
> 2 files changed, 16 insertions(+)
>
> diff --git a/contrib/libxo/libxo/xo.h b/contrib/libxo/libxo/xo.h
> index 6a61a16c7cae..7f37b469b54e 100644
> --- a/contrib/libxo/libxo/xo.h
> +++ b/contrib/libxo/libxo/xo.h
> @@ -27,6 +27,10 @@
> #include <stdlib.h>
> #include <errno.h>
>
> +#ifdef __cplusplus
> +extern "C" {
> +#endif /* __cplusplus */
> +
> #ifdef __dead2
> #define NORETURN __dead2
> #else
> @@ -699,4 +703,8 @@ xo_retain_clear_all (void);
> void
> xo_retain_clear (const char *fmt);
>
> +#ifdef __cplusplus
> +}
> +#endif /* __cplusplus */
> +
> #endif /* INCLUDE_XO_H */
> diff --git a/contrib/libxo/libxo/xo_encoder.h b/contrib/libxo/libxo/xo_encoder.h
> index 099248ae13a6..bb57194ab030 100644
> --- a/contrib/libxo/libxo/xo_encoder.h
> +++ b/contrib/libxo/libxo/xo_encoder.h
> @@ -20,6 +20,10 @@
>
> #include <string.h>
>
> +#ifdef __cplusplus
> +extern "C" {
> +#endif /* __cplusplus */
> +
> /*
> * Expose libxo's memory allocation functions
> */
> @@ -167,4 +171,8 @@ xo_encoder_op_name (xo_encoder_op_t op);
> void
> xo_failure (xo_handle_t *xop, const char *fmt, ...);
>
> +#ifdef __cplusplus
> +}
> +#endif /* __cplusplus */
> +
> #endif /* XO_ENCODER_H */
Would it be better to use __BEGIN_DECLS? I am not completely sure due to
contrib/, but libxo is FreeBSD-specific enough already.