Subject: Re: bug#36597: 27.0.50; rehash hash tables eagerly in pdumper

From: Paul Eggert <[email-masked]>
Date: Tue, 11 Aug 2020 11:11:20 -0700

On 8/11/20 10:00 AM, Eli Zaretskii wrote:
> The warnings about %d vs gl_intptr_t should be fixed in Gnulib, I
> think: why does it use 'long int' instead of 'int' on 32-bit
> platforms?  Or maybe the format in pdumper.c should use %ld instead, I
> don't know.

Ah, it's because Emacs uses C99 inttypes.h macros like PRIdPTR without also 
using the Gnulib inttypes module which implements these macros on platforms like 
MinGW where the macros don't work. This problem occurs elsewhere in Emacs in a 
couple of places, we just never noticed it. I installed the attached patch, 
which I hope fixes the glitch.
>From 39c16c1170fd8bd7035e6e265048dd371cde4609 Mon Sep 17 00:00:00 2001
From: Paul Eggert <[email-masked]>
Date: Tue, 11 Aug 2020 11:06:39 -0700
Subject: [PATCH] Use Gnulib inttypes module
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Needed for platforms like MinGW that don’t support C99 PRIdPTR.
* admin/merge-gnulib (GNULIB_MODULES): Add inttypes.
* m4/gnulib-comp.m4: Regenerate.
---
 admin/merge-gnulib | 2 +-
 lib/gnulib.mk.in   | 1 +
 m4/gnulib-comp.m4  | 2 ++
 3 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/admin/merge-gnulib b/admin/merge-gnulib
index 3f32536a62..98f7941bd8 100755
--- a/admin/merge-gnulib
+++ b/admin/merge-gnulib
@@ -36,7 +36,7 @@ GNULIB_MODULES=
   fchmodat fcntl fcntl-h fdopendir
   filemode filename filevercmp flexmember fpieee fstatat fsusage fsync futimens
   getloadavg getopt-gnu getrandom gettime gettimeofday gitlog-to-changelog
-  ieee754-h ignore-value intprops largefile libgmp lstat
+  ieee754-h ignore-value intprops inttypes largefile libgmp lstat
   manywarnings memmem-simple mempcpy memrchr minmax mkostemp mktime nstrftime
   pathmax pipe2 pselect pthread_sigmask
   qcopy-acl readlink readlinkat regex
diff --git a/lib/gnulib.mk.in b/lib/gnulib.mk.in
index 92d0621c61..e7e9fbdc31 100644
--- a/lib/gnulib.mk.in
+++ b/lib/gnulib.mk.in
@@ -116,6 +116,7 @@
 #  ieee754-h \
 #  ignore-value \
 #  intprops \
+#  inttypes \
 #  largefile \
 #  libgmp \
 #  lstat \
diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4
index 5bfa1473ed..1f8a87218e 100644
--- a/m4/gnulib-comp.m4
+++ b/m4/gnulib-comp.m4
@@ -113,6 +113,7 @@ AC_DEFUN
   # Code from module ignore-value:
   # Code from module include_next:
   # Code from module intprops:
+  # Code from module inttypes:
   # Code from module inttypes-incomplete:
   # Code from module largefile:
   AC_REQUIRE([AC_SYS_LARGEFILE])
@@ -342,6 +343,7 @@ AC_DEFUN
   fi
   gl_SYS_TIME_MODULE_INDICATOR([gettimeofday])
   gl_IEEE754_H
+  gl_INTTYPES_H
   gl_INTTYPES_INCOMPLETE
   AC_REQUIRE([gl_LARGEFILE])
   gl___INLINE
-- 
2.17.1