[Buildroot] [PATCH 1/1] package/lighttpd: fix build on musl

Andreas Ziegler br015 at umbiko.net
Wed Oct 27 04:58:49 UTC 2021


Hi Fabrice,

On 2021-10-26 18:38, Fabrice Fontaine <fontaine.fabrice at gmail.com> 
wrote:

> Fix the following build failure on musl raised since bump to version
> 1.4.60 in commit d62b7f54f00291a50274409fb5510527fd725ffe:
> 
> In file included from buffer.h:404,
>                  from array.h:5,
>                  from array.c:3:
> ck.h:24:14: error: expected ';' before 'typedef'
>    24 | __BEGIN_DECLS
>       |              ^
>       |              ;
> ......
>    29 | typedef size_t rsize_t;
>       | ~~~~~~~
> 
> Fixes:
>  -
> http://autobuild.buildroot.org/results/0d56a44449e89773499051b35f21ec83bfab4ca6
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> ---
>  ...-__BEGIN_DECLS-__END_DECLS-if-needed.patch | 39 +++++++++++++++++++
>  1 file changed, 39 insertions(+)
>  create mode 100644
> package/lighttpd/0002-core-define-__BEGIN_DECLS-__END_DECLS-if-needed.patch
> 
> diff --git
> a/package/lighttpd/0002-core-define-__BEGIN_DECLS-__END_DECLS-if-needed.patch
> b/package/lighttpd/0002-core-define-__BEGIN_DECLS-__END_DECLS-if-needed.patch
> new file mode 100644
> index 0000000000..cd64f18794
> --- /dev/null
> +++
> b/package/lighttpd/0002-core-define-__BEGIN_DECLS-__END_DECLS-if-needed.patch
> @@ -0,0 +1,39 @@
> +From cf4dfbe15ef8ead3a7eda974af7d804d447f00db Mon Sep 17 00:00:00 2001
> +From: Glenn Strauss <gstrauss at gluelogic.com>
> +Date: Mon, 4 Oct 2021 09:51:22 -0400
> +Subject: [PATCH] [core] define __BEGIN_DECLS, __END_DECLS if needed
> +
> +[Retrieved from:
> +https://github.com/lighttpd/lighttpd1.4/commit/cf4dfbe15ef8ead3a7eda974af7d804d447f00db]
> +Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> +---
> + src/first.h | 16 ++++++++++++++++
> + 1 file changed, 16 insertions(+)
> +
> +diff --git a/src/first.h b/src/first.h
> +index df747ba46..9d0428ae6 100644
> +--- a/src/first.h
> ++++ b/src/first.h
> +@@ -39,6 +39,22 @@
> + #include <sys/types.h>
> + #include <stddef.h>
> +
> ++#ifndef __BEGIN_DECLS
> ++#ifdef __cplusplus
> ++#define __BEGIN_DECLS extern "C" {
> ++#else
> ++#define __BEGIN_DECLS
> ++#endif
> ++#endif

Instead of creating your own declarations of _*_DECLS, you might just 
add the missing <sys/cdefs.h> to ck.h; this seems to be the only place 
the problem occurs.

The header is part of glibc, but not of musl; within Buildroot it is 
automatically added by musl-compat-headers, which is selected if you use 
musl.

Kind regards,
Andreas

> ++
> ++#ifndef __END_DECLS
> ++#ifdef __cplusplus
> ++#define __END_DECLS }
> ++#else
> ++#define __END_DECLS
> ++#endif
> ++#endif
> ++
> + #if defined HAVE_STDINT_H
> + # include <stdint.h>
> + #elif defined HAVE_INTTYPES_H
> --
> 2.33.0


More information about the buildroot mailing list