On 10/19/20 7:42 AM, Pádraig Brady wrote:
I see there were some adjustments to the handling
in this area in gnulib recently in the modules/parse-datetime file.
Moving this discussion to gnulib...
Savannah Git master coreutils was still using Gnulib
0b93877fc4bdcd84b78805e5917e4ab94684b9bc dated 2020-07-27, so the recent Gnulib
changes to parse-datetime should not have affected Coreutils builds from Git.
My guess is that Hogren was using parallel make somehow, and ran into a bug that
has been fixed by the adjustments you mentioned in recent Gnulib parse-datetime.
To test this guess, I just now installed the attached patch to Savannah Git
master coreutils. If this fixes the problem we're done; otherwise it'd helpful
to have a complete log of the bootstrap and build from scratch (no --quiet
options please), along with the output of the 'env' command so that we can see
what options are sneaking in from the environment.
>From c1babd86ac26aa718c78c41f05b271c8df6fcf5a Mon Sep 17 00:00:00 2001
From: Paul Eggert <egg...@cs.ucla.edu>
Date: Mon, 19 Oct 2020 10:47:32 -0700
Subject: [PATCH] build: update gnulib submodule to latest
* gl/lib/randperm.c, src/cp-hash.c, src/ls.c, src/sort.c, src/tail.c:
Change all instaces of hash_delete to hash_remove to accommodate
change to Gnulib API.
---
gl/lib/randperm.c | 4 ++--
gnulib | 2 +-
src/cp-hash.c | 2 +-
src/ls.c | 2 +-
src/sort.c | 2 +-
src/tail.c | 6 +++---
6 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/gl/lib/randperm.c b/gl/lib/randperm.c
index e9f46cd8c..400c7b33b 100644
--- a/gl/lib/randperm.c
+++ b/gl/lib/randperm.c
@@ -119,8 +119,8 @@ sparse_new (size_t size_hint)
static void
sparse_swap (sparse_map *sv, size_t* v, size_t i, size_t j)
{
- struct sparse_ent_ *v1 = hash_delete (sv, &(struct sparse_ent_) {i,0});
- struct sparse_ent_ *v2 = hash_delete (sv, &(struct sparse_ent_) {j,0});
+ struct sparse_ent_ *v1 = hash_remove (sv, &(struct sparse_ent_) {i,0});
+ struct sparse_ent_ *v2 = hash_remove (sv, &(struct sparse_ent_) {j,0});
/* FIXME: reduce the frequency of these mallocs. */
if (!v1)
diff --git a/gnulib b/gnulib
index 0b93877fc..2d386f229 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit 0b93877fc4bdcd84b78805e5917e4ab94684b9bc
+Subproject commit 2d386f229aba9ecda85736b931e2964d7922d90e
diff --git a/src/cp-hash.c b/src/cp-hash.c
index 10ab2cd05..339071667 100644
--- a/src/cp-hash.c
+++ b/src/cp-hash.c
@@ -88,7 +88,7 @@ forget_created (ino_t ino, dev_t dev)
probe.st_dev = dev;
probe.name = NULL;
- ent = hash_delete (src_to_dest, &probe);
+ ent = hash_remove (src_to_dest, &probe);
if (ent)
src_to_dest_free (ent);
}
diff --git a/src/ls.c b/src/ls.c
index a69f9d6e4..1f6afbc0e 100644
--- a/src/ls.c
+++ b/src/ls.c
@@ -1766,7 +1766,7 @@ main (int argc, char **argv)
Use its dev/ino numbers to remove the corresponding
entry from the active_dir_set hash table. */
struct dev_ino di = dev_ino_pop ();
- struct dev_ino *found = hash_delete (active_dir_set, &di);
+ struct dev_ino *found = hash_remove (active_dir_set, &di);
/* ASSERT_MATCHING_DEV_INO (thispend->realname, di); */
assert (found);
dev_ino_free (found);
diff --git a/src/sort.c b/src/sort.c
index 242bf66d1..0163ba18a 100644
--- a/src/sort.c
+++ b/src/sort.c
@@ -757,7 +757,7 @@ delete_proc (pid_t pid)
struct tempnode test;
test.pid = pid;
- struct tempnode *node = hash_delete (proctab, &test);
+ struct tempnode *node = hash_remove (proctab, &test);
if (! node)
return false;
node->state = REAPED;
diff --git a/src/tail.c b/src/tail.c
index 18e52b1bf..016690b6e 100644
--- a/src/tail.c
+++ b/src/tail.c
@@ -1771,7 +1771,7 @@ tail_forever_inotify (int wd, struct File_spec *f, size_t n_files,
if (0 <= fspec->wd)
{
inotify_rm_watch (wd, fspec->wd);
- hash_delete (wd_to_name, fspec);
+ hash_remove (wd_to_name, fspec);
}
fspec->wd = new_wd;
@@ -1782,7 +1782,7 @@ tail_forever_inotify (int wd, struct File_spec *f, size_t n_files,
/* If the file was moved then inotify will use the source file wd
for the destination file. Make sure the key is not present in
the table. */
- struct File_spec *prev = hash_delete (wd_to_name, fspec);
+ struct File_spec *prev = hash_remove (wd_to_name, fspec);
if (prev && prev != fspec)
{
if (follow_mode == Follow_name)
@@ -1817,7 +1817,7 @@ tail_forever_inotify (int wd, struct File_spec *f, size_t n_files,
if (ev->mask & IN_DELETE_SELF)
{
inotify_rm_watch (wd, fspec->wd);
- hash_delete (wd_to_name, fspec);
+ hash_remove (wd_to_name, fspec);
}
/* Note we get IN_ATTRIB for unlink() as st_nlink decrements.
--
2.25.1