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 <config-util.h> 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 <ps@pks.im>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
Patrick Steinhardt 2020-03-07 17:29:09 +01:00 committed by Daniel Kiper
parent 2c43ab4ef7
commit 552c9fd081
1 changed files with 6 additions and 8 deletions

View File

@ -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 <config-util.h>
+
@@ -21,8 +21,14 @@
/* Get size_t. */
# include <stddef.h>
@ -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