From 552c9fd08122a3036c724ce96dfe68aa2f75705f Mon Sep 17 00:00:00 2001 From: Patrick Steinhardt Date: Sat, 7 Mar 2020 17:29:09 +0100 Subject: [PATCH] gnulib: Fix build of base64 when compiling with memory debugging When building GRUB with memory management debugging enabled, then the build fails because of `grub_debug_malloc()` and `grub_debug_free()` being undefined in the luks2 module. The cause is that we patch "base64.h" to unconditionaly include "config-util.h", which shouldn't be included for modules at all. As a result, `MM_DEBUG` is defined when building the module, causing it to use the debug memory allocation functions. As these are not built into modules, we end up with a linker error. Fix the issue by removing the include altogether. The sole reason it was included was for the `_GL_ATTRIBUTE_CONST` macro, which we can simply define as empty in case it's not set. Signed-off-by: Patrick Steinhardt Reviewed-by: Daniel Kiper --- grub-core/lib/gnulib-patches/fix-base64.patch | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/grub-core/lib/gnulib-patches/fix-base64.patch b/grub-core/lib/gnulib-patches/fix-base64.patch index e075b6fab..985db1279 100644 --- a/grub-core/lib/gnulib-patches/fix-base64.patch +++ b/grub-core/lib/gnulib-patches/fix-base64.patch @@ -1,14 +1,8 @@ diff --git a/lib/base64.h b/lib/base64.h -index 9cd0183b8..a2aaa2d4a 100644 +index 9cd0183b8..185a2afa1 100644 --- a/lib/base64.h +++ b/lib/base64.h -@@ -18,11 +18,16 @@ - #ifndef BASE64_H - # define BASE64_H - -+/* Get _GL_ATTRIBUTE_CONST */ -+# include -+ +@@ -21,8 +21,14 @@ /* Get size_t. */ # include @@ -17,6 +11,10 @@ index 9cd0183b8..a2aaa2d4a 100644 +#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