All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/4] Update gnulib and drop some patches
@ 2022-01-27 19:39 Robbie Harwood
  2022-01-27 19:39 ` [PATCH v3 1/4] Use visual indentation in config.h.in Robbie Harwood
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Robbie Harwood @ 2022-01-27 19:39 UTC (permalink / raw)
  To: grub-devel; +Cc: dkiper, darren.kenny, ps, dja, development, Robbie Harwood

Changes in this version:
- Make the version of bootstrap match what it's supposed to
- Restore fix-width.patch at dkiper's request

Be well,
--Robbie

Robbie Harwood (4):
  Use visual indentation in config.h.in
  Drop gnulib fix-base64.patch
  Drop gnulib no-abort.patch
  Update gnulib version and drop most gnulib patches

 bootstrap                                     | 319 ++++++++++--------
 bootstrap.conf                                |  18 +-
 conf/Makefile.extra-dist                      |   8 -
 config.h.in                                   |  78 +++--
 configure.ac                                  |   2 +-
 grub-core/Makefile.core.def                   |   1 +
 grub-core/lib/gnulib-patches/fix-base64.patch |  21 --
 .../lib/gnulib-patches/fix-null-deref.patch   |  13 -
 .../gnulib-patches/fix-null-state-deref.patch |  12 -
 .../fix-regcomp-uninit-token.patch            |  15 -
 .../fix-regexec-null-deref.patch              |  12 -
 .../gnulib-patches/fix-uninit-structure.patch |  11 -
 .../lib/gnulib-patches/fix-unused-value.patch |  14 -
 grub-core/lib/gnulib-patches/no-abort.patch   |  26 --
 grub-core/lib/posix_wrap/sys/types.h          |   7 +-
 grub-core/lib/xzembed/xz.h                    |   5 +-
 16 files changed, 248 insertions(+), 314 deletions(-)
 delete mode 100644 grub-core/lib/gnulib-patches/fix-base64.patch
 delete mode 100644 grub-core/lib/gnulib-patches/fix-null-deref.patch
 delete mode 100644 grub-core/lib/gnulib-patches/fix-null-state-deref.patch
 delete mode 100644 grub-core/lib/gnulib-patches/fix-regcomp-uninit-token.patch
 delete mode 100644 grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch
 delete mode 100644 grub-core/lib/gnulib-patches/fix-uninit-structure.patch
 delete mode 100644 grub-core/lib/gnulib-patches/fix-unused-value.patch
 delete mode 100644 grub-core/lib/gnulib-patches/no-abort.patch

-- 
2.34.1



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v3 1/4] Use visual indentation in config.h.in
  2022-01-27 19:39 [PATCH v3 0/4] Update gnulib and drop some patches Robbie Harwood
@ 2022-01-27 19:39 ` Robbie Harwood
  2022-01-27 19:39 ` [PATCH v3 2/4] Drop gnulib fix-base64.patch Robbie Harwood
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Robbie Harwood @ 2022-01-27 19:39 UTC (permalink / raw)
  To: grub-devel; +Cc: dkiper, darren.kenny, ps, dja, development, Robbie Harwood

Signed-off-by: Robbie Harwood <rharwood@redhat.com>
---
 config.h.in | 56 ++++++++++++++++++++++++++---------------------------
 1 file changed, 28 insertions(+), 28 deletions(-)

diff --git a/config.h.in b/config.h.in
index 9e8f9911b..1c8c05b9c 100644
--- a/config.h.in
+++ b/config.h.in
@@ -22,46 +22,46 @@
 #define MINILZO_CFG_SKIP_LZO1X_DECOMPRESS 1
 
 #if defined (GRUB_BUILD)
-#undef ENABLE_NLS
-#define BUILD_SIZEOF_LONG @BUILD_SIZEOF_LONG@
-#define BUILD_SIZEOF_VOID_P @BUILD_SIZEOF_VOID_P@
-#if defined __APPLE__
-# if defined __BIG_ENDIAN__
-#  define BUILD_WORDS_BIGENDIAN 1
-# else
-#  define BUILD_WORDS_BIGENDIAN 0
-# endif
-#else
-#define BUILD_WORDS_BIGENDIAN @BUILD_WORDS_BIGENDIAN@
-#endif
+#  undef ENABLE_NLS
+#  define BUILD_SIZEOF_LONG @BUILD_SIZEOF_LONG@
+#  define BUILD_SIZEOF_VOID_P @BUILD_SIZEOF_VOID_P@
+#  if defined __APPLE__
+#    if defined __BIG_ENDIAN__
+#      define BUILD_WORDS_BIGENDIAN 1
+#    else
+#      define BUILD_WORDS_BIGENDIAN 0
+#    endif
+#  else /* !defined __APPLE__ */
+#    define BUILD_WORDS_BIGENDIAN @BUILD_WORDS_BIGENDIAN@
+#  endif /* !defined __APPLE__ */
 #elif defined (GRUB_UTIL) || !defined (GRUB_MACHINE)
-#include <config-util.h>
-#else
-#define HAVE_FONT_SOURCE @HAVE_FONT_SOURCE@
+#  include <config-util.h>
+#else /* !defined GRUB_UTIL && defined GRUB_MACHINE */
+#  define HAVE_FONT_SOURCE @HAVE_FONT_SOURCE@
 /* Define if C symbols get an underscore after compilation. */
-#define HAVE_ASM_USCORE @HAVE_ASM_USCORE@
+#  define HAVE_ASM_USCORE @HAVE_ASM_USCORE@
 /* Define it to one of __bss_start, edata and _edata.  */
-#define BSS_START_SYMBOL @BSS_START_SYMBOL@
+#  define BSS_START_SYMBOL @BSS_START_SYMBOL@
 /* Define it to either end or _end.  */
-#define END_SYMBOL @END_SYMBOL@
+#  define END_SYMBOL @END_SYMBOL@
 /* Name of package.  */
-#define PACKAGE "@PACKAGE@"
+#  define PACKAGE "@PACKAGE@"
 /* Version number of package.  */
-#define VERSION "@VERSION@"
+#  define VERSION "@VERSION@"
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "@PACKAGE_STRING@"
+#  define PACKAGE_STRING "@PACKAGE_STRING@"
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "@PACKAGE_VERSION@"
+#  define PACKAGE_VERSION "@PACKAGE_VERSION@"
 /* Define to the full name of this package. */
-#define PACKAGE_NAME "@PACKAGE_NAME@"
+#  define PACKAGE_NAME "@PACKAGE_NAME@"
 /* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "@PACKAGE_BUGREPORT@"
+#  define PACKAGE_BUGREPORT "@PACKAGE_BUGREPORT@"
 
-#define GRUB_TARGET_CPU "@GRUB_TARGET_CPU@"
-#define GRUB_PLATFORM "@GRUB_PLATFORM@"
+#  define GRUB_TARGET_CPU "@GRUB_TARGET_CPU@"
+#  define GRUB_PLATFORM "@GRUB_PLATFORM@"
 
-#define RE_ENABLE_I18N 1
+#  define RE_ENABLE_I18N 1
 
-#define _GNU_SOURCE 1
+#  define _GNU_SOURCE 1
 
 #endif
-- 
2.34.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v3 2/4] Drop gnulib fix-base64.patch
  2022-01-27 19:39 [PATCH v3 0/4] Update gnulib and drop some patches Robbie Harwood
  2022-01-27 19:39 ` [PATCH v3 1/4] Use visual indentation in config.h.in Robbie Harwood
@ 2022-01-27 19:39 ` Robbie Harwood
  2022-01-27 19:39 ` [PATCH v3 3/4] Drop gnulib no-abort.patch Robbie Harwood
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Robbie Harwood @ 2022-01-27 19:39 UTC (permalink / raw)
  To: grub-devel; +Cc: dkiper, darren.kenny, ps, dja, development, Robbie Harwood

Originally added in 9fbdec2f6b4fa8b549daa4d49134d1fe89d95ef9 and
subsequently modified in 552c9fd08122a3036c724ce96dfe68aa2f75705f,
fix-base64.patch handled two problems we have using gnulib, which are
exerciesd by the base64 module but not directly caused by it.

First, grub2 defines its own bool type, while gnulib expects the
equivalent of stdbool.h to be present.  Rather than patching gnulib,
instead use gnulib's stdbool module to provide a bool type if needed.
(Suggested by Simon Josefsson.)

Second, our config.h doesn't always inherit config-util.h, which is
where gnulib-related options like _GL_ATTRIBUTE_CONST end up.
fix-base64.h worked around this by defining the attribute away, but this
workaround is better placed in config.h itself, not a gnulib patch.

Signed-off-by: Robbie Harwood <rharwood@redhat.com>
---
 bootstrap.conf                                |  3 ++-
 conf/Makefile.extra-dist                      |  1 -
 config.h.in                                   |  2 ++
 grub-core/lib/gnulib-patches/fix-base64.patch | 21 -------------------
 grub-core/lib/posix_wrap/sys/types.h          |  7 +++----
 grub-core/lib/xzembed/xz.h                    |  5 +----
 6 files changed, 8 insertions(+), 31 deletions(-)
 delete mode 100644 grub-core/lib/gnulib-patches/fix-base64.patch

diff --git a/bootstrap.conf b/bootstrap.conf
index 0dd893c5c..21a8cf15d 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -35,6 +35,7 @@ gnulib_modules="
   realloc-gnu
   regex
   save-cwd
+  stdbool
 "
 
 gnulib_tool_option_extras="\
@@ -80,7 +81,7 @@ cp -a INSTALL INSTALL.grub
 
 bootstrap_post_import_hook () {
   set -e
-  for patchname in fix-base64 fix-null-deref fix-null-state-deref fix-regcomp-uninit-token \
+  for patchname in fix-null-deref fix-null-state-deref fix-regcomp-uninit-token \
       fix-regexec-null-deref fix-uninit-structure fix-unused-value fix-width no-abort; do
     patch -d grub-core/lib/gnulib -p2 \
       < "grub-core/lib/gnulib-patches/$patchname.patch"
diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist
index 8f1485d52..15a9b74e9 100644
--- a/conf/Makefile.extra-dist
+++ b/conf/Makefile.extra-dist
@@ -28,7 +28,6 @@ EXTRA_DIST += grub-core/gensymlist.sh
 EXTRA_DIST += grub-core/genemuinit.sh
 EXTRA_DIST += grub-core/genemuinitheader.sh
 
-EXTRA_DIST += grub-core/lib/gnulib-patches/fix-base64.patch
 EXTRA_DIST += grub-core/lib/gnulib-patches/fix-null-deref.patch
 EXTRA_DIST += grub-core/lib/gnulib-patches/fix-null-state-deref.patch
 EXTRA_DIST += grub-core/lib/gnulib-patches/fix-regcomp-uninit-token.patch
diff --git a/config.h.in b/config.h.in
index 1c8c05b9c..751802f91 100644
--- a/config.h.in
+++ b/config.h.in
@@ -64,4 +64,6 @@
 
 #  define _GNU_SOURCE 1
 
+#  define _GL_ATTRIBUTE_CONST
+
 #endif
diff --git a/grub-core/lib/gnulib-patches/fix-base64.patch b/grub-core/lib/gnulib-patches/fix-base64.patch
deleted file mode 100644
index 985db1279..000000000
--- a/grub-core/lib/gnulib-patches/fix-base64.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/lib/base64.h b/lib/base64.h
-index 9cd0183b8..185a2afa1 100644
---- a/lib/base64.h
-+++ b/lib/base64.h
-@@ -21,8 +21,14 @@
- /* Get size_t. */
- # include <stddef.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" {
diff --git a/grub-core/lib/posix_wrap/sys/types.h b/grub-core/lib/posix_wrap/sys/types.h
index 854eb0122..eeda543c4 100644
--- a/grub-core/lib/posix_wrap/sys/types.h
+++ b/grub-core/lib/posix_wrap/sys/types.h
@@ -23,11 +23,10 @@
 
 #include <stddef.h>
 
+/* Provided by gnulib if not present. */
+#include <stdbool.h>
+
 typedef grub_ssize_t ssize_t;
-#ifndef GRUB_POSIX_BOOL_DEFINED
-typedef enum { false = 0, true = 1 } bool;
-#define GRUB_POSIX_BOOL_DEFINED 1
-#endif
 
 typedef grub_uint8_t uint8_t;
 typedef grub_uint16_t uint16_t;
diff --git a/grub-core/lib/xzembed/xz.h b/grub-core/lib/xzembed/xz.h
index f7b32d800..d1417039a 100644
--- a/grub-core/lib/xzembed/xz.h
+++ b/grub-core/lib/xzembed/xz.h
@@ -29,10 +29,7 @@
 #include <unistd.h>
 #include <string.h>
 #include <grub/misc.h>
-
-#ifndef GRUB_POSIX_BOOL_DEFINED
-typedef enum { false = 0, true = 1 } bool;
-#endif
+#include <stdbool.h>
 
 /**
  * enum xz_ret - Return codes
-- 
2.34.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v3 3/4] Drop gnulib no-abort.patch
  2022-01-27 19:39 [PATCH v3 0/4] Update gnulib and drop some patches Robbie Harwood
  2022-01-27 19:39 ` [PATCH v3 1/4] Use visual indentation in config.h.in Robbie Harwood
  2022-01-27 19:39 ` [PATCH v3 2/4] Drop gnulib fix-base64.patch Robbie Harwood
@ 2022-01-27 19:39 ` Robbie Harwood
  2022-01-27 19:40 ` [PATCH v3 4/4] Update gnulib version and drop most gnulib patches Robbie Harwood
  2022-02-01 18:59 ` [PATCH v3 0/4] Update gnulib and drop some patches Glenn Washburn
  4 siblings, 0 replies; 7+ messages in thread
From: Robbie Harwood @ 2022-01-27 19:39 UTC (permalink / raw)
  To: grub-devel; +Cc: dkiper, darren.kenny, ps, dja, development, Robbie Harwood

Originally added in db7337a3d353a817ffe9eb4a3702120527100be9, this
patched out all relevant invocations of abort() in gnulib.  While it was
not documented why at the time, testing suggests that there's no abort()
implementation available for gnulib to use.

gnulib's position is that the use of abort() is correct here, since it
happens when input violates a "shall" from POSIX.  Additionally, the
code in question is probably not reachable.  Since abort() is more
friendly to user-space, they prefer to make no change, so we can just
carry a define instead.  (Suggested by Paul Eggert.)

Signed-off-by: Robbie Harwood <rharwood@redhat.com>
---
 bootstrap.conf                              |  2 +-
 conf/Makefile.extra-dist                    |  1 -
 config.h.in                                 |  3 +++
 grub-core/lib/gnulib-patches/no-abort.patch | 26 ---------------------
 4 files changed, 4 insertions(+), 28 deletions(-)
 delete mode 100644 grub-core/lib/gnulib-patches/no-abort.patch

diff --git a/bootstrap.conf b/bootstrap.conf
index 21a8cf15d..71acbeeb1 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -82,7 +82,7 @@ cp -a INSTALL INSTALL.grub
 bootstrap_post_import_hook () {
   set -e
   for patchname in fix-null-deref fix-null-state-deref fix-regcomp-uninit-token \
-      fix-regexec-null-deref fix-uninit-structure fix-unused-value fix-width no-abort; do
+      fix-regexec-null-deref fix-uninit-structure fix-unused-value fix-width; do
     patch -d grub-core/lib/gnulib -p2 \
       < "grub-core/lib/gnulib-patches/$patchname.patch"
   done
diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist
index 15a9b74e9..4ddc3c8f7 100644
--- a/conf/Makefile.extra-dist
+++ b/conf/Makefile.extra-dist
@@ -35,7 +35,6 @@ EXTRA_DIST += grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch
 EXTRA_DIST += grub-core/lib/gnulib-patches/fix-uninit-structure.patch
 EXTRA_DIST += grub-core/lib/gnulib-patches/fix-unused-value.patch
 EXTRA_DIST += grub-core/lib/gnulib-patches/fix-width.patch
-EXTRA_DIST += grub-core/lib/gnulib-patches/no-abort.patch
 
 EXTRA_DIST += grub-core/lib/libgcrypt
 EXTRA_DIST += grub-core/lib/libgcrypt-grub/mpi/generic
diff --git a/config.h.in b/config.h.in
index 751802f91..66c16abfd 100644
--- a/config.h.in
+++ b/config.h.in
@@ -66,4 +66,7 @@
 
 #  define _GL_ATTRIBUTE_CONST
 
+/* We don't have an abort() for gnulib to call in regexp. */
+#  define abort() DEBUG_ASSERT(0)
+
 #endif
diff --git a/grub-core/lib/gnulib-patches/no-abort.patch b/grub-core/lib/gnulib-patches/no-abort.patch
deleted file mode 100644
index e469c4762..000000000
--- a/grub-core/lib/gnulib-patches/no-abort.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/lib/regcomp.c b/lib/regcomp.c
-index cc85f35ac..de45ebb5c 100644
---- a/lib/regcomp.c
-+++ b/lib/regcomp.c
-@@ -528,9 +528,9 @@ regerror (int errcode, const regex_t *__restrict preg, char *__restrict errbuf,
-        to this routine.  If we are given anything else, or if other regex
-        code generates an invalid error code, then the program has a bug.
-        Dump core so we can fix it.  */
--    abort ();
--
--  msg = gettext (__re_error_msgid + __re_error_msgid_idx[errcode]);
-+    msg = gettext ("unknown regexp error");
-+  else
-+    msg = gettext (__re_error_msgid + __re_error_msgid_idx[errcode]);
- 
-   msg_size = strlen (msg) + 1; /* Includes the null.  */
- 
-@@ -1136,7 +1136,7 @@ optimize_utf8 (re_dfa_t *dfa)
- 	}
- 	break;
-       default:
--	abort ();
-+	break;
-       }
- 
-   if (mb_chars || has_period)
-- 
2.34.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v3 4/4] Update gnulib version and drop most gnulib patches
  2022-01-27 19:39 [PATCH v3 0/4] Update gnulib and drop some patches Robbie Harwood
                   ` (2 preceding siblings ...)
  2022-01-27 19:39 ` [PATCH v3 3/4] Drop gnulib no-abort.patch Robbie Harwood
@ 2022-01-27 19:40 ` Robbie Harwood
  2022-02-01 18:59 ` [PATCH v3 0/4] Update gnulib and drop some patches Glenn Washburn
  4 siblings, 0 replies; 7+ messages in thread
From: Robbie Harwood @ 2022-01-27 19:40 UTC (permalink / raw)
  To: grub-devel; +Cc: dkiper, darren.kenny, ps, dja, development, Robbie Harwood

In addition to the changes carried in our gnulib patches, several
Coverity and code hygiene fixes that were previously downstream are also
included in this 3-year gnulib increment.

Unfortunately, fix-width.patch is retained.

Bump minimum autoconf version from 2.63 to 2.64 as required by gnulib.

Sync bootstrap script itself with gnulib.

Update regexp module for new dynarray dependency.

Signed-off-by: Robbie Harwood <rharwood@redhat.com>
---
 bootstrap                                     | 319 ++++++++++--------
 bootstrap.conf                                |  17 +-
 conf/Makefile.extra-dist                      |   6 -
 config.h.in                                   |  17 +
 configure.ac                                  |   2 +-
 grub-core/Makefile.core.def                   |   1 +
 .../lib/gnulib-patches/fix-null-deref.patch   |  13 -
 .../gnulib-patches/fix-null-state-deref.patch |  12 -
 .../fix-regcomp-uninit-token.patch            |  15 -
 .../fix-regexec-null-deref.patch              |  12 -
 .../gnulib-patches/fix-uninit-structure.patch |  11 -
 .../lib/gnulib-patches/fix-unused-value.patch |  14 -
 12 files changed, 210 insertions(+), 229 deletions(-)
 delete mode 100644 grub-core/lib/gnulib-patches/fix-null-deref.patch
 delete mode 100644 grub-core/lib/gnulib-patches/fix-null-state-deref.patch
 delete mode 100644 grub-core/lib/gnulib-patches/fix-regcomp-uninit-token.patch
 delete mode 100644 grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch
 delete mode 100644 grub-core/lib/gnulib-patches/fix-uninit-structure.patch
 delete mode 100644 grub-core/lib/gnulib-patches/fix-unused-value.patch

diff --git a/bootstrap b/bootstrap
index 5b08e7e2d..dc2238f4a 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Print a version string.
-scriptversion=2019-01-04.17; # UTC
+scriptversion=2022-01-26.05; # UTC
 
 # Bootstrap this package from checked-out sources.
 
-# Copyright (C) 2003-2019 Free Software Foundation, Inc.
+# Copyright (C) 2003-2022 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -47,7 +47,7 @@ PERL="${PERL-perl}"
 
 me=$0
 
-default_gnulib_url=git://git.sv.gnu.org/gnulib
+default_gnulib_url=https://git.savannah.gnu.org/git/gnulib.git
 
 usage() {
   cat <<EOF
@@ -71,7 +71,9 @@ Options:
  --no-git                 do not use git to update gnulib.  Requires that
                           --gnulib-srcdir point to a correct gnulib snapshot
  --skip-po                do not download po files
-
+EOF
+  bootstrap_print_option_usage_hook
+  cat <<EOF
 If the file $me.conf exists in the same directory as this script, its
 contents are read as shell variables to configure the bootstrap.
 
@@ -113,6 +115,12 @@ Running without arguments will suffice in most cases.
 EOF
 }
 
+copyright_year=`echo "$scriptversion" | sed -e 's/[^0-9].*//'`
+copyright="Copyright (C) ${copyright_year} Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law."
+
 # warnf_ FORMAT-STRING ARG1...
 warnf_ ()
 {
@@ -154,6 +162,18 @@ gnulib_files=
 : ${AUTOPOINT=autopoint}
 : ${AUTORECONF=autoreconf}
 
+# A function to be called for each unrecognized option.  Returns 0 if
+# the option in $1 has been processed by the function.  Returns 1 if
+# the option has not been processed by the function.  Override it via
+# your own definition in bootstrap.conf
+
+bootstrap_option_hook() { return 1; }
+
+# A function to be called in order to print the --help information
+# corresponding to user-defined command-line options.
+
+bootstrap_print_option_usage_hook() { :; }
+
 # A function to be called right after gnulib-tool is run.
 # Override it via your own definition in bootstrap.conf.
 bootstrap_post_import_hook() { :; }
@@ -166,11 +186,11 @@ bootstrap_epilogue() { :; }
 # specified directory.  Fill in the first %s with the destination
 # directory and the second with the domain name.
 po_download_command_format=\
-"wget --mirror --level=1 -nd -q -A.po -P '%s' \
+"wget --mirror --level=1 -nd -nv -A.po -P '%s' \
  https://translationproject.org/latest/%s/"
 
 # Prefer a non-empty tarname (4th argument of AC_INIT if given), else
-# fall back to the package name (1st argument with munging)
+# fall back to the package name (1st argument with munging).
 extract_package_name='
   /^AC_INIT(\[*/{
      s///
@@ -187,8 +207,11 @@ extract_package_name='
      p
   }
 '
-package=$(sed -n "$extract_package_name" configure.ac) \
-  || die 'cannot find package name in configure.ac'
+package=$(${AUTOCONF:-autoconf} --trace AC_INIT:\$4 configure.ac 2>/dev/null)
+if test -z "$package"; then
+  package=$(sed -n "$extract_package_name" configure.ac) \
+      || die 'cannot find package name in configure.ac'
+fi
 gnulib_name=lib$package
 
 build_aux=build-aux
@@ -290,62 +313,6 @@ find_tool ()
   eval "export $find_tool_envvar"
 }
 
-# Override the default configuration, if necessary.
-# Make sure that bootstrap.conf is sourced from the current directory
-# if we were invoked as "sh bootstrap".
-case "$0" in
-  */*) test -r "$0.conf" && . "$0.conf" ;;
-  *) test -r "$0.conf" && . ./"$0.conf" ;;
-esac
-
-if test "$vc_ignore" = auto; then
-  vc_ignore=
-  test -d .git && vc_ignore=.gitignore
-  test -d CVS && vc_ignore="$vc_ignore .cvsignore"
-fi
-
-if test x"$gnulib_modules$gnulib_files$gnulib_extra_files" = x; then
-  use_gnulib=false
-else
-  use_gnulib=true
-fi
-
-# Translate configuration into internal form.
-
-# Parse options.
-
-for option
-do
-  case $option in
-  --help)
-    usage
-    exit;;
-  --gnulib-srcdir=*)
-    GNULIB_SRCDIR=${option#--gnulib-srcdir=};;
-  --skip-po)
-    SKIP_PO=t;;
-  --force)
-    checkout_only_file=;;
-  --copy)
-    copy=true;;
-  --bootstrap-sync)
-    bootstrap_sync=true;;
-  --no-bootstrap-sync)
-    bootstrap_sync=false;;
-  --no-git)
-    use_git=false;;
-  *)
-    die "$option: unknown option";;
-  esac
-done
-
-$use_git || test -d "$GNULIB_SRCDIR" \
-  || die "Error: --no-git requires --gnulib-srcdir"
-
-if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
-  die "Bootstrapping from a non-checked-out distribution is risky."
-fi
-
 # Strip blank and comment lines to leave significant entries.
 gitignore_entries() {
   sed '/^#/d; /^$/d' "$@"
@@ -387,6 +354,137 @@ insert_vc_ignore() {
   insert_if_absent "$vc_ignore_file" "$pattern"
 }
 
+symlink_to_dir()
+{
+  src=$1/$2
+  dst=${3-$2}
+
+  test -f "$src" && {
+
+    # If the destination directory doesn't exist, create it.
+    # This is required at least for "lib/uniwidth/cjk.h".
+    dst_dir=$(dirname "$dst")
+    if ! test -d "$dst_dir"; then
+      mkdir -p "$dst_dir"
+
+      # If we've just created a directory like lib/uniwidth,
+      # tell version control system(s) it's ignorable.
+      # FIXME: for now, this does only one level
+      parent=$(dirname "$dst_dir")
+      for dot_ig in x $vc_ignore; do
+        test $dot_ig = x && continue
+        ig=$parent/$dot_ig
+        insert_vc_ignore $ig "${dst_dir##*/}"
+      done
+    fi
+
+    if $copy; then
+      {
+        test ! -h "$dst" || {
+          echo "$me: rm -f $dst" &&
+          rm -f "$dst"
+        }
+      } &&
+      test -f "$dst" &&
+      cmp -s "$src" "$dst" || {
+        echo "$me: cp -fp $src $dst" &&
+        cp -fp "$src" "$dst"
+      }
+    else
+      # Leave any existing symlink alone, if it already points to the source,
+      # so that broken build tools that care about symlink times
+      # aren't confused into doing unnecessary builds.  Conversely, if the
+      # existing symlink's timestamp is older than the source, make it afresh,
+      # so that broken tools aren't confused into skipping needed builds.  See
+      # <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00326.html>.
+      test -h "$dst" &&
+      src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 &&
+      dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 &&
+      test "$src_i" = "$dst_i" &&
+      both_ls=$(ls -dt "$src" "$dst") &&
+      test "X$both_ls" = "X$dst$nl$src" || {
+        dot_dots=
+        case $src in
+        /*) ;;
+        *)
+          case /$dst/ in
+          *//* | */../* | */./* | /*/*/*/*/*/)
+             die "invalid symlink calculation: $src -> $dst";;
+          /*/*/*/*/)    dot_dots=../../../;;
+          /*/*/*/)      dot_dots=../../;;
+          /*/*/)        dot_dots=../;;
+          esac;;
+        esac
+
+        echo "$me: ln -fs $dot_dots$src $dst" &&
+        ln -fs "$dot_dots$src" "$dst"
+      }
+    fi
+  }
+}
+
+# Override the default configuration, if necessary.
+# Make sure that bootstrap.conf is sourced from the current directory
+# if we were invoked as "sh bootstrap".
+case "$0" in
+  */*) test -r "$0.conf" && . "$0.conf" ;;
+  *) test -r "$0.conf" && . ./"$0.conf" ;;
+esac
+
+if test "$vc_ignore" = auto; then
+  vc_ignore=
+  test -d .git && vc_ignore=.gitignore
+  test -d CVS && vc_ignore="$vc_ignore .cvsignore"
+fi
+
+if test x"$gnulib_modules$gnulib_files$gnulib_extra_files" = x; then
+  use_gnulib=false
+else
+  use_gnulib=true
+fi
+
+# Translate configuration into internal form.
+
+# Parse options.
+
+for option
+do
+  case $option in
+  --help)
+    usage
+    exit;;
+  --version)
+    set -e
+    echo "bootstrap $scriptversion"
+    echo "$copyright"
+    exit 0
+    ;;
+  --gnulib-srcdir=*)
+    GNULIB_SRCDIR=${option#--gnulib-srcdir=};;
+  --skip-po)
+    SKIP_PO=t;;
+  --force)
+    checkout_only_file=;;
+  --copy)
+    copy=true;;
+  --bootstrap-sync)
+    bootstrap_sync=true;;
+  --no-bootstrap-sync)
+    bootstrap_sync=false;;
+  --no-git)
+    use_git=false;;
+  *)
+    bootstrap_option_hook $option || die "$option: unknown option";;
+  esac
+done
+
+$use_git || test -d "$GNULIB_SRCDIR" \
+  || die "Error: --no-git requires --gnulib-srcdir"
+
+if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
+  die "Bootstrapping from a non-checked-out distribution is risky."
+fi
+
 # Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac.
 found_aux_dir=no
 grep '^[	 ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \
@@ -665,9 +763,25 @@ if $use_gnulib; then
       shallow=
       if test -z "$GNULIB_REVISION"; then
         git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2'
+        git clone $shallow ${GNULIB_URL:-$default_gnulib_url} "$gnulib_path" \
+          || cleanup_gnulib
+      else
+        git fetch -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2'
+        mkdir -p "$gnulib_path"
+        # Only want a shallow checkout of $GNULIB_REVISION, but git does not
+        # support cloning by commit hash. So attempt a shallow fetch by commit
+        # hash to minimize the amount of data downloaded and changes needed to
+        # be processed, which can drastically reduce download and processing
+        # time for checkout. If the fetch by commit fails, a shallow fetch can
+        # not be performed because we do not know what the depth of the commit
+        # is without fetching all commits. So fallback to fetching all commits.
+        git -C "$gnulib_path" init
+        git -C "$gnulib_path" remote add origin ${GNULIB_URL:-$default_gnulib_url}
+        git -C "$gnulib_path" fetch $shallow origin "$GNULIB_REVISION" \
+          || git -C "$gnulib_path" fetch origin \
+          || cleanup_gnulib
+        git -C "$gnulib_path" reset --hard FETCH_HEAD
       fi
-      git clone $shallow ${GNULIB_URL:-$default_gnulib_url} "$gnulib_path" \
-        || cleanup_gnulib
 
       trap - 1 2 13 15
     fi
@@ -784,75 +898,6 @@ case $SKIP_PO in
   fi;;
 esac
 
-symlink_to_dir()
-{
-  src=$1/$2
-  dst=${3-$2}
-
-  test -f "$src" && {
-
-    # If the destination directory doesn't exist, create it.
-    # This is required at least for "lib/uniwidth/cjk.h".
-    dst_dir=$(dirname "$dst")
-    if ! test -d "$dst_dir"; then
-      mkdir -p "$dst_dir"
-
-      # If we've just created a directory like lib/uniwidth,
-      # tell version control system(s) it's ignorable.
-      # FIXME: for now, this does only one level
-      parent=$(dirname "$dst_dir")
-      for dot_ig in x $vc_ignore; do
-        test $dot_ig = x && continue
-        ig=$parent/$dot_ig
-        insert_vc_ignore $ig "${dst_dir##*/}"
-      done
-    fi
-
-    if $copy; then
-      {
-        test ! -h "$dst" || {
-          echo "$me: rm -f $dst" &&
-          rm -f "$dst"
-        }
-      } &&
-      test -f "$dst" &&
-      cmp -s "$src" "$dst" || {
-        echo "$me: cp -fp $src $dst" &&
-        cp -fp "$src" "$dst"
-      }
-    else
-      # Leave any existing symlink alone, if it already points to the source,
-      # so that broken build tools that care about symlink times
-      # aren't confused into doing unnecessary builds.  Conversely, if the
-      # existing symlink's timestamp is older than the source, make it afresh,
-      # so that broken tools aren't confused into skipping needed builds.  See
-      # <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00326.html>.
-      test -h "$dst" &&
-      src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 &&
-      dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 &&
-      test "$src_i" = "$dst_i" &&
-      both_ls=$(ls -dt "$src" "$dst") &&
-      test "X$both_ls" = "X$dst$nl$src" || {
-        dot_dots=
-        case $src in
-        /*) ;;
-        *)
-          case /$dst/ in
-          *//* | */../* | */./* | /*/*/*/*/*/)
-             die "invalid symlink calculation: $src -> $dst";;
-          /*/*/*/*/)    dot_dots=../../../;;
-          /*/*/*/)      dot_dots=../../;;
-          /*/*/)        dot_dots=../;;
-          esac;;
-        esac
-
-        echo "$me: ln -fs $dot_dots$src $dst" &&
-        ln -fs "$dot_dots$src" "$dst"
-      }
-    fi
-  }
-}
-
 version_controlled_file() {
   parent=$1
   file=$2
@@ -970,7 +1015,7 @@ bootstrap_post_import_hook \
 # Uninitialized submodules are listed with an initial dash.
 if $use_git && git submodule | grep '^-' >/dev/null; then
   die "some git submodules are not initialized. "     \
-      "Run 'git submodule init' and bootstrap again."
+      "Run 'git submodule update --init' and bootstrap again."
 fi
 
 # Remove any dangling symlink matching "*.m4" or "*.[ch]" in some
@@ -1064,7 +1109,7 @@ bootstrap_epilogue
 
 echo "$0: done.  Now you can run './configure'."
 
-# Local variables:
+# Local Variables:
 # eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
diff --git a/bootstrap.conf b/bootstrap.conf
index 71acbeeb1..6defe7b1c 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -1,6 +1,6 @@
 # Bootstrap configuration.
 
-# Copyright (C) 2006-2019 Free Software Foundation, Inc.
+# Copyright (C) 2006-2022 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -16,7 +16,7 @@
 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 
-GNULIB_REVISION=d271f868a8df9bbec29049d01e056481b7a1a263
+GNULIB_REVISION=364c5ba2e40d17e98cc66021ef893e30a009068b
 
 # gnulib modules used by this package.
 # mbswidth is used by gnulib-fix-width.diff's changes to argp rather than
@@ -67,7 +67,7 @@ SKIP_PO=t
 
 # Build prerequisites
 buildreq="\
-autoconf   2.63
+autoconf   2.64
 automake   1.11
 gettext    0.18.3
 git        1.5.5
@@ -81,11 +81,12 @@ cp -a INSTALL INSTALL.grub
 
 bootstrap_post_import_hook () {
   set -e
-  for patchname in fix-null-deref fix-null-state-deref fix-regcomp-uninit-token \
-      fix-regexec-null-deref fix-uninit-structure fix-unused-value fix-width; do
-    patch -d grub-core/lib/gnulib -p2 \
-      < "grub-core/lib/gnulib-patches/$patchname.patch"
-  done
+
+  # Instead of patching our gnulib and therefore maintaining a fork, submit
+  # changes to gnulib and update the hash above when they've merged.  Do not
+  # add new patches here.
+  patch -d grub-core/lib/gnulib -p2 < grub-core/lib/gnulib-patches/fix-width.patch
+
   for patchname in \
       0001-Support-POTFILES-shell \
       0002-Handle-gettext_printf-shell-function \
diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist
index 4ddc3c8f7..5e7126f98 100644
--- a/conf/Makefile.extra-dist
+++ b/conf/Makefile.extra-dist
@@ -28,12 +28,6 @@ EXTRA_DIST += grub-core/gensymlist.sh
 EXTRA_DIST += grub-core/genemuinit.sh
 EXTRA_DIST += grub-core/genemuinitheader.sh
 
-EXTRA_DIST += grub-core/lib/gnulib-patches/fix-null-deref.patch
-EXTRA_DIST += grub-core/lib/gnulib-patches/fix-null-state-deref.patch
-EXTRA_DIST += grub-core/lib/gnulib-patches/fix-regcomp-uninit-token.patch
-EXTRA_DIST += grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch
-EXTRA_DIST += grub-core/lib/gnulib-patches/fix-uninit-structure.patch
-EXTRA_DIST += grub-core/lib/gnulib-patches/fix-unused-value.patch
 EXTRA_DIST += grub-core/lib/gnulib-patches/fix-width.patch
 
 EXTRA_DIST += grub-core/lib/libgcrypt
diff --git a/config.h.in b/config.h.in
index 66c16abfd..d9cc5176a 100644
--- a/config.h.in
+++ b/config.h.in
@@ -64,7 +64,24 @@
 
 #  define _GNU_SOURCE 1
 
+/* gnulib gets configured against the host, not the target, and the rest of
+ * our buildsystem works around that.  This is difficult to avoid as gnulib's
+ * detection requires a more capable system than our target.  Instead, we
+ * reach in and set values appropriately.  If, when updating gnulib,
+ * something breaks, there's probably a change needed here or in
+ * grub-core/Makefile.core.def. */
 #  define _GL_ATTRIBUTE_CONST
+#  define _GL_ATTRIBUTE_COLD
+#  define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0)
+#  define _GL_ATTRIBUTE_MALLOC
+#  define _GL_INLINE inline
+#  define _GL_INLINE_HEADER_BEGIN
+#  define SIZE_MAX ((size_t) -1)
+#  define uint_fast32_t uint32_t
+#  define int_fast32_t int32_t
+
+/* We don't have an abort() for gnulib to call in regexp. */
+#  define abort() DEBUG_ASSERT(0)
 
 /* We don't have an abort() for gnulib to call in regexp. */
 #  define abort() DEBUG_ASSERT(0)
diff --git a/configure.ac b/configure.ac
index 4f649edaf..cc220e9d0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -49,7 +49,7 @@ AC_CANONICAL_TARGET
 program_prefix="${save_program_prefix}"
 
 AM_INIT_AUTOMAKE([1.11])
-AC_PREREQ(2.63)
+AC_PREREQ(2.64)
 AC_CONFIG_SRCDIR([include/grub/dl.h])
 AC_CONFIG_HEADER([config-util.h])
 
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
index 8022e1c0a..48ac59be6 100644
--- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def
@@ -743,6 +743,7 @@ module = {
   name = regexp;
   common = commands/regexp.c;
   common = commands/wildcard.c;
+  common = lib/gnulib/malloc/dynarray_resize.c;
   common = lib/gnulib/regex.c;
   cflags = '$(CFLAGS_POSIX) $(CFLAGS_GNULIB)';
   cppflags = '$(CPPFLAGS_POSIX) $(CPPFLAGS_GNULIB)';
diff --git a/grub-core/lib/gnulib-patches/fix-null-deref.patch b/grub-core/lib/gnulib-patches/fix-null-deref.patch
deleted file mode 100644
index 8fafa153a..000000000
--- a/grub-core/lib/gnulib-patches/fix-null-deref.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/lib/argp-parse.c b/lib/argp-parse.c
-index 6dec57310..900adad54 100644
---- a/lib/argp-parse.c
-+++ b/lib/argp-parse.c
-@@ -940,7 +940,7 @@ weak_alias (__argp_parse, argp_parse)
- void *
- __argp_input (const struct argp *argp, const struct argp_state *state)
- {
--  if (state)
-+  if (state && state->pstate)
-     {
-       struct group *group;
-       struct parser *parser = state->pstate;
diff --git a/grub-core/lib/gnulib-patches/fix-null-state-deref.patch b/grub-core/lib/gnulib-patches/fix-null-state-deref.patch
deleted file mode 100644
index 813ec09c8..000000000
--- a/grub-core/lib/gnulib-patches/fix-null-state-deref.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/lib/argp-help.c	2020-10-28 14:32:19.189215988 +0000
-+++ b/lib/argp-help.c	2020-10-28 14:38:21.204673940 +0000
-@@ -145,7 +145,8 @@
-       if (*(int *)((char *)upptr + up->uparams_offs) >= upptr->rmargin)
-         {
-           __argp_failure (state, 0, 0,
--                          dgettext (state->root_argp->argp_domain,
-+                          dgettext (state == NULL ? NULL
-+                                    : state->root_argp->argp_domain,
-                                     "\
- ARGP_HELP_FMT: %s value is less than or equal to %s"),
-                           "rmargin", up->name);
diff --git a/grub-core/lib/gnulib-patches/fix-regcomp-uninit-token.patch b/grub-core/lib/gnulib-patches/fix-regcomp-uninit-token.patch
deleted file mode 100644
index 02e06315d..000000000
--- a/grub-core/lib/gnulib-patches/fix-regcomp-uninit-token.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/lib/regcomp.c	2020-11-24 17:06:08.159223858 +0000
-+++ b/lib/regcomp.c	2020-11-24 17:06:15.630253923 +0000
-@@ -3808,11 +3808,7 @@
- create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right,
- 	     re_token_type_t type)
- {
--  re_token_t t;
--#if defined GCC_LINT || defined lint
--  memset (&t, 0, sizeof t);
--#endif
--  t.type = type;
-+  re_token_t t = { .type = type };
-   return create_token_tree (dfa, left, right, &t);
- }
- 
diff --git a/grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch b/grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch
deleted file mode 100644
index db6dac9c9..000000000
--- a/grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/lib/regexec.c	2020-10-21 14:25:35.310195912 +0000
-+++ b/lib/regexec.c	2020-11-05 10:55:09.621542984 +0000
-@@ -1692,6 +1692,9 @@
- {
-   Idx top = mctx->state_log_top;
-
-+  if (mctx->state_log == NULL)
-+    return REG_NOERROR;
-+
-   if ((next_state_log_idx >= mctx->input.bufs_len
-        && mctx->input.bufs_len < mctx->input.len)
-       || (next_state_log_idx >= mctx->input.valid_len
diff --git a/grub-core/lib/gnulib-patches/fix-uninit-structure.patch b/grub-core/lib/gnulib-patches/fix-uninit-structure.patch
deleted file mode 100644
index 7b4d9f67a..000000000
--- a/grub-core/lib/gnulib-patches/fix-uninit-structure.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/lib/regcomp.c	2020-10-22 13:49:06.770168928 +0000
-+++ b/lib/regcomp.c	2020-10-22 13:50:37.026528298 +0000
-@@ -3662,7 +3662,7 @@
-   Idx alloc = 0;
- #endif /* not RE_ENABLE_I18N */
-   reg_errcode_t ret;
--  re_token_t br_token;
-+  re_token_t br_token = {0};
-   bin_tree_t *tree;
- 
-   sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
diff --git a/grub-core/lib/gnulib-patches/fix-unused-value.patch b/grub-core/lib/gnulib-patches/fix-unused-value.patch
deleted file mode 100644
index ba51f1bf2..000000000
--- a/grub-core/lib/gnulib-patches/fix-unused-value.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/lib/regexec.c	2020-10-21 14:25:35.310195912 +0000
-+++ b/lib/regexec.c	2020-10-21 14:32:07.961765604 +0000
-@@ -828,7 +828,11 @@
- 		    break;
- 		  if (__glibc_unlikely (err != REG_NOMATCH))
- 		    goto free_return;
-+#ifdef DEBUG
-+		  /* Only used for assertion below when DEBUG is set, otherwise
-+		     it will be over-written when we loop around.  */
- 		  match_last = -1;
-+#endif
- 		}
- 	      else
- 		break; /* We found a match.  */
-- 
2.34.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 0/4] Update gnulib and drop some patches
  2022-01-27 19:39 [PATCH v3 0/4] Update gnulib and drop some patches Robbie Harwood
                   ` (3 preceding siblings ...)
  2022-01-27 19:40 ` [PATCH v3 4/4] Update gnulib version and drop most gnulib patches Robbie Harwood
@ 2022-02-01 18:59 ` Glenn Washburn
  2022-02-02 15:24   ` Robbie Harwood
  4 siblings, 1 reply; 7+ messages in thread
From: Glenn Washburn @ 2022-02-01 18:59 UTC (permalink / raw)
  To: Robbie Harwood; +Cc: grub-devel, dkiper, darren.kenny, ps, dja

On Thu, 27 Jan 2022 14:39:56 -0500
Robbie Harwood <rharwood@redhat.com> wrote:

> Changes in this version:
> - Make the version of bootstrap match what it's supposed to
> - Restore fix-width.patch at dkiper's request
> 
> Be well,
> --Robbie

I presume this has been build tested, right?

I'm getting the following compiler error with gcc 10.1.0:

In file included from
/home/g10/grub-tests-uml-update-gnulib/grub/grub-core/disk /luks2.c:30:
/home/g10/grub-tests-uml-update-gnulib/grub/grub-core/disk/luks2.c: In
function ‘luks2_verify_key’:
/home/g10/grub-tests-uml-update-gnulib/grub/grub-core/disk/luks2.c:398:75:
error: pointer targets in passing argument 5 of ‘base64_decode_ctx’
differ in signedness [-Werror=pointer-sign] 398 |   if (!base64_decode
(d->digest, grub_strlen (d->digest), (char *)digest, &digestlen)) |
                                                                      ^~~~~~~~~~
|
    | |
          grub_size_t * {aka long unsigned int *}
/home/g10/grub-tests-uml-update-gnulib/grub/grub-core/lib/gnulib/base64.h:59:50:
note: in definition of macro ‘base64_decode’ 59 |
base64_decode_ctx (NULL, in, inlen, out, outlen) |
                            ^~~~~~
/home/g10/grub-tests-uml-update-gnulib/grub/grub-core/lib/gnulib/base64.h:52:59:
note: expected ‘idx_t *’ {aka ‘long int *’} but argument is of type
‘grub_size_t *’ {aka ‘long unsigned int *’}
   52 |                                char *restrict out, idx_t
*outlen); |
~~~~~~~^~~~~~
/home/g10/grub-tests-uml-update-gnulib/grub/grub-core/disk/luks2.c:400:69:
error: pointer targets in passing argument 5 of ‘base64_decode_ctx’
differ in signedness [-Werror=pointer-sign] 400 |   if (!base64_decode
(d->salt, grub_strlen (d->salt), (char *)salt, &saltlen)) |
                                                        ^~~~~~~~ |
                                                               | |
                                                               grub_size_t
* {aka long unsigned int *}
/home/g10/grub-tests-uml-update-gnulib/grub/grub-core/lib/gnulib/base64.h:59:50:
note: in definition of macro ‘base64_decode’ 59 |
base64_decode_ctx (NULL, in, inlen, out, outlen) |
                            ^~~~~~
/home/g10/grub-tests-uml-update-gnulib/grub/grub-core/lib/gnulib/base64.h:52:59:
note: expected ‘idx_t *’ {aka ‘long int *’} but argument is of type
‘grub_size_t *’ {aka ‘long unsigned int *’} 52 |
        char *restrict out, idx_t *outlen); |
                         ~~~~~~~^~~~~~
/home/g10/grub-tests-uml-update-gnulib/grub/grub-core/disk/luks2.c: In
function ‘luks2_decrypt_key’:
home/g10/grub-tests-uml-update-gnulib/grub/grub-core/disk/luks2.c:439:22:
error: pointer targets in passing argument 5 of ‘base64_decode_ctx’
differ in signedness [-Werror=pointer-sign] 439 |        (char *)salt,
&saltlen)) |                      ^~~~~~~~ |                      |
      |                      grub_size_t * {aka long unsigned int *}
/home/g10/grub-tests-uml-update-gnulib/grub/grub-core/lib/gnulib/base64.h:59:50:
note: in definition of macro ‘base64_decode’ 59 |
base64_decode_ctx (NULL, in, inlen, out, outlen) |
                            ^~~~~~
/home/g10/grub-tests-uml-update-gnulib/grub/grub-core/lib/gnulib/base64.h:52:59:
note: expected ‘idx_t *’ {aka ‘long int *’} but argument is of type
‘grub_size_t *’ {aka ‘long unsigned int *’} 52 |
        char *restrict out, idx_t *outlen); |
                         ~~~~~~~^~~~~~
cc1: all warnings being treated as errors

Should be an easy fix. What compiler version are you using?

Glenn

> 
> Robbie Harwood (4):
>   Use visual indentation in config.h.in
>   Drop gnulib fix-base64.patch
>   Drop gnulib no-abort.patch
>   Update gnulib version and drop most gnulib patches
> 
>  bootstrap                                     | 319 ++++++++++--------
>  bootstrap.conf                                |  18 +-
>  conf/Makefile.extra-dist                      |   8 -
>  config.h.in                                   |  78 +++--
>  configure.ac                                  |   2 +-
>  grub-core/Makefile.core.def                   |   1 +
>  grub-core/lib/gnulib-patches/fix-base64.patch |  21 --
>  .../lib/gnulib-patches/fix-null-deref.patch   |  13 -
>  .../gnulib-patches/fix-null-state-deref.patch |  12 -
>  .../fix-regcomp-uninit-token.patch            |  15 -
>  .../fix-regexec-null-deref.patch              |  12 -
>  .../gnulib-patches/fix-uninit-structure.patch |  11 -
>  .../lib/gnulib-patches/fix-unused-value.patch |  14 -
>  grub-core/lib/gnulib-patches/no-abort.patch   |  26 --
>  grub-core/lib/posix_wrap/sys/types.h          |   7 +-
>  grub-core/lib/xzembed/xz.h                    |   5 +-
>  16 files changed, 248 insertions(+), 314 deletions(-)
>  delete mode 100644 grub-core/lib/gnulib-patches/fix-base64.patch
>  delete mode 100644 grub-core/lib/gnulib-patches/fix-null-deref.patch
>  delete mode 100644 grub-core/lib/gnulib-patches/fix-null-state-deref.patch
>  delete mode 100644 grub-core/lib/gnulib-patches/fix-regcomp-uninit-token.patch
>  delete mode 100644 grub-core/lib/gnulib-patches/fix-regexec-null-deref.patch
>  delete mode 100644 grub-core/lib/gnulib-patches/fix-uninit-structure.patch
>  delete mode 100644 grub-core/lib/gnulib-patches/fix-unused-value.patch
>  delete mode 100644 grub-core/lib/gnulib-patches/no-abort.patch
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 0/4] Update gnulib and drop some patches
  2022-02-01 18:59 ` [PATCH v3 0/4] Update gnulib and drop some patches Glenn Washburn
@ 2022-02-02 15:24   ` Robbie Harwood
  0 siblings, 0 replies; 7+ messages in thread
From: Robbie Harwood @ 2022-02-02 15:24 UTC (permalink / raw)
  To: development; +Cc: grub-devel, dkiper, darren.kenny, ps, dja

[-- Attachment #1: Type: text/plain, Size: 3967 bytes --]

Glenn Washburn <development@efficientek.com> writes:

> On Thu, 27 Jan 2022 14:39:56 -0500
> Robbie Harwood <rharwood@redhat.com> wrote:
>
>> Changes in this version:
>> - Make the version of bootstrap match what it's supposed to
>> - Restore fix-width.patch at dkiper's request
>> 
>> Be well,
>> --Robbie
>
> I presume this has been build tested, right?
>
> I'm getting the following compiler error with gcc 10.1.0:
>
> In file included from
> /home/g10/grub-tests-uml-update-gnulib/grub/grub-core/disk /luks2.c:30:
> /home/g10/grub-tests-uml-update-gnulib/grub/grub-core/disk/luks2.c: In
> function ‘luks2_verify_key’:
> /home/g10/grub-tests-uml-update-gnulib/grub/grub-core/disk/luks2.c:398:75:
> error: pointer targets in passing argument 5 of ‘base64_decode_ctx’
> differ in signedness [-Werror=pointer-sign] 398 |   if (!base64_decode
> (d->digest, grub_strlen (d->digest), (char *)digest, &digestlen)) |
>                                                                       ^~~~~~~~~~
> |
>     | |
>           grub_size_t * {aka long unsigned int *}
> /home/g10/grub-tests-uml-update-gnulib/grub/grub-core/lib/gnulib/base64.h:59:50:
> note: in definition of macro ‘base64_decode’ 59 |
> base64_decode_ctx (NULL, in, inlen, out, outlen) |
>                             ^~~~~~
> /home/g10/grub-tests-uml-update-gnulib/grub/grub-core/lib/gnulib/base64.h:52:59:
> note: expected ‘idx_t *’ {aka ‘long int *’} but argument is of type
> ‘grub_size_t *’ {aka ‘long unsigned int *’}
>    52 |                                char *restrict out, idx_t
> *outlen); |
> ~~~~~~~^~~~~~
> /home/g10/grub-tests-uml-update-gnulib/grub/grub-core/disk/luks2.c:400:69:
> error: pointer targets in passing argument 5 of ‘base64_decode_ctx’
> differ in signedness [-Werror=pointer-sign] 400 |   if (!base64_decode
> (d->salt, grub_strlen (d->salt), (char *)salt, &saltlen)) |
>                                                         ^~~~~~~~ |
>                                                                | |
>                                                                grub_size_t
> * {aka long unsigned int *}
> /home/g10/grub-tests-uml-update-gnulib/grub/grub-core/lib/gnulib/base64.h:59:50:
> note: in definition of macro ‘base64_decode’ 59 |
> base64_decode_ctx (NULL, in, inlen, out, outlen) |
>                             ^~~~~~
> /home/g10/grub-tests-uml-update-gnulib/grub/grub-core/lib/gnulib/base64.h:52:59:
> note: expected ‘idx_t *’ {aka ‘long int *’} but argument is of type
> ‘grub_size_t *’ {aka ‘long unsigned int *’} 52 |
>         char *restrict out, idx_t *outlen); |
>                          ~~~~~~~^~~~~~
> /home/g10/grub-tests-uml-update-gnulib/grub/grub-core/disk/luks2.c: In
> function ‘luks2_decrypt_key’:
> home/g10/grub-tests-uml-update-gnulib/grub/grub-core/disk/luks2.c:439:22:
> error: pointer targets in passing argument 5 of ‘base64_decode_ctx’
> differ in signedness [-Werror=pointer-sign] 439 |        (char *)salt,
> &saltlen)) |                      ^~~~~~~~ |                      |
>       |                      grub_size_t * {aka long unsigned int *}
> /home/g10/grub-tests-uml-update-gnulib/grub/grub-core/lib/gnulib/base64.h:59:50:
> note: in definition of macro ‘base64_decode’ 59 |
> base64_decode_ctx (NULL, in, inlen, out, outlen) |
>                             ^~~~~~
> /home/g10/grub-tests-uml-update-gnulib/grub/grub-core/lib/gnulib/base64.h:52:59:
> note: expected ‘idx_t *’ {aka ‘long int *’} but argument is of type
> ‘grub_size_t *’ {aka ‘long unsigned int *’} 52 |
>         char *restrict out, idx_t *outlen); |
>                          ~~~~~~~^~~~~~
> cc1: all warnings being treated as errors
>
> Should be an easy fix. What compiler version are you using?

gcc11-series.  I'll see if I can reproduce in a VM and get a fix out.

Be well,
--Robbie

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 861 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-02-02 15:24 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-27 19:39 [PATCH v3 0/4] Update gnulib and drop some patches Robbie Harwood
2022-01-27 19:39 ` [PATCH v3 1/4] Use visual indentation in config.h.in Robbie Harwood
2022-01-27 19:39 ` [PATCH v3 2/4] Drop gnulib fix-base64.patch Robbie Harwood
2022-01-27 19:39 ` [PATCH v3 3/4] Drop gnulib no-abort.patch Robbie Harwood
2022-01-27 19:40 ` [PATCH v3 4/4] Update gnulib version and drop most gnulib patches Robbie Harwood
2022-02-01 18:59 ` [PATCH v3 0/4] Update gnulib and drop some patches Glenn Washburn
2022-02-02 15:24   ` Robbie Harwood

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.