Hi Paul,
On NetBSD 10.1, in a testdir of all modules, I see after running
'./configure && make':
depbase=`echo utimens.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; gcc
-DHAVE_CONFIG_H -DEXEEXT=\"\" -DEXEEXT=\"\" -DNO_XMALLOC -DEXEEXT=\"\" -I.
-I.. -DGNULIB_STRICT_CHECKING=1 -fvisibility=hidden -g -O2 -MT utimens.o -MD
-MP -MF $depbase.Tpo -c -o utimens.o utimens.c && mv -f $depbase.Tpo $depbase.Po
utimens.c: In function 'rpl_utimens':
utimens.c:541:10: warning: implicit declaration of function 'utimens'; did
you mean 'futimens'? [-Wimplicit-function-declaration]
541 | return utimens (file, timespec);
| ^~~~~~~
| futimens
utimens.c: In function 'rpl_lutimens':
utimens.c:563:10: warning: implicit declaration of function 'lutimens'; did
you mean 'futimens'? [-Wimplicit-function-declaration]
563 | return lutimens (file, timespec);
| ^~~~~~~~
| futimens
It seems that there was a slight mistake in one of your commits a few
months ago:
> On this platform, <sys/time.h> declares utimens and lutimens and the
> C library defines them, so we needn’t (and shouldn’t).
> Problem reported privately by Thomas Klausner.
[...]
> * lib/utimens.h [HAVE_UTIMENS || HAVE_LUTIMENS]:
> Include <sys/time.h>, for NetBSD’s declaration of utimens and lutimens.
As far as I can tell through looking at the git history (I don't know
how to use CVS), these functions have always been declared in
<sys/stat.h>, not <sys/time.h>
I have pushed the attach patch that fixes these warnings.
Collin
[1] https://lists.gnu.org/archive/html/bug-gnulib/2024-09/msg00099.html
[2]
https://github.com/NetBSD/src/commit/ff84366ca60c698af8d1ea72aa3871bee0ba8463#diff-aa03d0529d55ab3fffd58831b20dc2c1742770e2d82efcf5c3e9843bde19adb4
>From 39db933c36305612b79300aa34f4d0d926816cd3 Mon Sep 17 00:00:00 2001
From: Collin Funk <[email protected]>
Date: Sun, 23 Mar 2025 16:36:26 -0700
Subject: [PATCH] utimens: Fix missing declarations on NetBSD (regr.
2024-09-16).
* lib/utimens.h [HAVE_UTIMENS || HAVE_LUTIMENS]: Include <sys/stat.h>
instead of <sys/time.h> for the declarations of these functions on
NetBSD.
---
ChangeLog | 5 +++++
lib/utimens.h | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
index 10c428e81f..c849ceb122 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2025-03-23 Collin Funk <[email protected]>
+ utimens: Fix missing declarations on NetBSD (regr. 2024-09-16).
+ * lib/utimens.h [HAVE_UTIMENS || HAVE_LUTIMENS]: Include <sys/stat.h>
+ instead of <sys/time.h> for the declarations of these functions on
+ NetBSD.
+
newlocale: Fix implicit function declarations.
* lib/newlocale.c [HAVE_NEWLOCALE]: Include string.h for strlen and
strcmp, stdio.h for sprintf, and stdlib.h for free.
diff --git a/lib/utimens.h b/lib/utimens.h
index 007958dd93..62ea7d8f5f 100644
--- a/lib/utimens.h
+++ b/lib/utimens.h
@@ -25,7 +25,7 @@
#include <time.h>
#if HAVE_UTIMENS || HAVE_LUTIMENS
-# include <sys/time.h>
+# include <sys/stat.h>
#endif
#ifdef __cplusplus
--
2.49.0