From: Patrick Steinhardt <p...@pks.im> The gnulib module makes use of booleans via the <stdbool.h> header. As GRUB does not provide any POSIX wrapper header for this, but instead implements support for bool in <sys/types.h>, we need to patch base64.h to not use <stdbool.h> anymore. We unfortunately cannot include <sys/types.h> instead, as it would then use gnulib's internal header while compiling the gnulib object but our own <sys/types.h> when including it in a GRUB module. Because of this, the patch replaces the include with a direct typedef.
A second fix is required to make available _GL_ATTRIBUTE_CONST, which is provided by the configure script. As base64.h does not include <config.h>, it is thus not available and results in a compile error. This is fixed by adding an include of <config-util.h>. Signed-off-by: Patrick Steinhardt <p...@pks.im> Reviewed-by: Daniel Kiper <daniel.ki...@oracle.com> [rharw...@redhat.com: squished commit messages, wrote subject] Signed-off-by: Robbie Harwood <rharw...@redhat.com> --- lib/base64.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/base64.h b/lib/base64.h index e58ccfb1f..fd108fb35 100644 --- a/lib/base64.h +++ b/lib/base64.h @@ -21,8 +21,14 @@ /* Get idx_t. */ # include <idx.h> -/* Get bool. */ -# include <stdbool.h> +#ifndef GRUB_POSIX_BOOL_DEFINED +typedef enum { false = 0, true = 1 } bool; +#define GRUB_POSIX_BOOL_DEFINED 1 +#endif + +#ifndef _GL_ATTRIBUTE_CONST +# define _GL_ATTRIBUTE_CONST /* empty */ +#endif # ifdef __cplusplus extern "C" { -- 2.33.0