bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

renameat declaration on NetBSD 7.0


From: Bruno Haible
Subject: renameat declaration on NetBSD 7.0
Date: Tue, 15 Aug 2017 22:06:18 +0200
User-agent: KMail/5.1.3 (Linux/4.4.0-91-generic; KDE/5.18.0; x86_64; ; )

On NetBSD 7.0, I'm seeing this test compilation failure:

gcc -std=gnu99 -DHAVE_CONFIG_H -DEXEEXT=\"\" -I. -I../../gltests -I..  
-DGNULIB_STRICT_CHECKING=1 -DIN_GNULIB_TESTS=1 -I. -I../../gltests -I.. 
-I../../gltests/.. -I../gllib -I../../gltests/../gllib -I/home/bruno/include 
-Wall -D_XOPEN_SOURCE=500  -g -O2 -MT test-renameat.o -MD -MP -MF $depbase.Tpo 
-c -o test-renameat.o ../../gltests/test-renameat.c &&\
mv -f $depbase.Tpo $depbase.Po
In file included from ../../gltests/test-renameat.c:23:0:
../../gltests/test-renameat.c:24:18: error: 'renameat' undeclared here (not in 
a function)
 SIGNATURE_CHECK (renameat, int, (int, char const *, int, char const *));
                  ^
../../gltests/signature.h:46:58: note: in definition of macro 'SIGNATURE_CHECK2'
   static ret (* _GL_UNUSED signature_check ## id) args = fn
                                                          ^
../../gltests/signature.h:39:3: note: in expansion of macro 'SIGNATURE_CHECK1'
   SIGNATURE_CHECK1 (fn, ret, args, __LINE__)
   ^
../../gltests/test-renameat.c:24:1: note: in expansion of macro 
'SIGNATURE_CHECK'
 SIGNATURE_CHECK (renameat, int, (int, char const *, int, char const *));
 ^
Makefile:8106: recipe for target 'test-renameat.o' failed


This patch fixes it.


2017-08-15  Bruno Haible  <address@hidden>

        renameat: Ensure declaration in <stdio.h> on NetBSD.
        * lib/stdio.in.h: Include <unistd,h> also on NetBSD.
        * doc/posix-functions/renameat.texi: Mention this problem.

diff --git a/doc/posix-functions/renameat.texi 
b/doc/posix-functions/renameat.texi
index 46b25b1..ee01b89 100644
--- a/doc/posix-functions/renameat.texi
+++ b/doc/posix-functions/renameat.texi
@@ -19,7 +19,7 @@ Solaris 9.
 @item
 This function is declared in @code{<unistd.h>} instead of @code{<stdio.h>}
 on some platforms:
-Solaris 11 2011-11.
+NetBSD 7.0, Solaris 11 2011-11.
 @item
 This function is missing on some platforms:
 glibc 2.3.6, Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
diff --git a/lib/stdio.in.h b/lib/stdio.in.h
index 5329b9d..5ca8a23 100644
--- a/lib/stdio.in.h
+++ b/lib/stdio.in.h
@@ -111,9 +111,9 @@
 #define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, 
first_argument) \
   _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument))
 
-/* Solaris 10 declares renameat in <unistd.h>, not in <stdio.h>.  */
+/* Solaris 10 and NetBSD 7.0 declare renameat in <unistd.h>, not in <stdio.h>. 
 */
 /* But in any case avoid namespace pollution on glibc systems.  */
-#if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __sun \
+#if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && (defined __sun || 
defined __NetBSD__) \
     && ! defined __GLIBC__
 # include <unistd.h>
 #endif




reply via email to

[Prev in Thread] Current Thread [Next in Thread]