[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Fix error when GNULIB_POSIXCHECK is enabled
From: |
Bruno Haible |
Subject: |
Fix error when GNULIB_POSIXCHECK is enabled |
Date: |
Wed, 18 Nov 2020 02:35:38 +0100 |
User-agent: |
KMail/5.1.3 (Linux/4.4.0-193-generic; KDE/5.18.0; x86_64; ; ) |
Compiling a testdir created with
./gnulib-tool --create-testdir --dir=../testdir1 --single-configure
--with-c++-tests \
array-list avltreehash-list avltree-list carray-list linkedhash-list \
linked-list list rbtreehash-list rbtree-list sublist xlist xsublist list-c++ \
posixcheck strpbrk
I get this compilation error on most platforms:
gcc -DHAVE_CONFIG_H -I. -I../../gllib -I.. -DGNULIB_STRICT_CHECKING=1
-I/media/develdata/devel/inst-x86_64-64/include -Wall -g -O2 -MT cloexec.o -MD
-MP -MF .deps/cloexec.Tpo -c -o cloexec.o ../../gllib/cloexec.c
In file included from /usr/include/x86_64-linux-gnu/sys/types.h:219:0,
from ./sys/types.h:39,
from ./fcntl.h:56,
from ../../gllib/cloexec.c:25:
./unistd.h:900:1: error: ‘copy_file_range’ undeclared here (not in a function)
_GL_WARN_ON_USE (copy_file_range,
^
This patch fixes it.
2020-11-17 Bruno Haible <bruno@clisp.org>
Fix error when GNULIB_POSIXCHECK is enabled (regression 2019-06-04).
* lib/unistd.in.h (copy_file_range): Don't assume that copy_file_range
is always declared.
* m4/unistd_h.m4 (gl_UNISTD_H): Test whether copy_file_range is
declared.
diff --git a/lib/unistd.in.h b/lib/unistd.in.h
index efe237f..5cf6f9d 100644
--- a/lib/unistd.in.h
+++ b/lib/unistd.in.h
@@ -397,10 +397,11 @@ _GL_CXXALIAS_SYS (copy_file_range, ssize_t, (int ifd,
off_t *ipos,
# endif
_GL_CXXALIASWARN (copy_file_range);
#elif defined GNULIB_POSIXCHECK
-/* Assume copy_file_range is always declared. */
+# if HAVE_RAW_DECL_COPY_FILE_RANGE
_GL_WARN_ON_USE (copy_file_range,
"copy_file_range is unportable - "
"use gnulib module copy_file_range for portability");
+# endif
#endif
diff --git a/m4/unistd_h.m4 b/m4/unistd_h.m4
index b4734da..07b9158 100644
--- a/m4/unistd_h.m4
+++ b/m4/unistd_h.m4
@@ -1,4 +1,4 @@
-# unistd_h.m4 serial 81
+# unistd_h.m4 serial 82
dnl Copyright (C) 2006-2020 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -41,7 +41,8 @@ AC_DEFUN([gl_UNISTD_H],
# include <io.h>
# endif
#endif
- ]], [access chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir
+ ]], [access chdir chown copy_file_range dup dup2 dup3 environ euidaccess
+ faccessat fchdir
fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize
getentropy getgroups gethostname getlogin getlogin_r getpagesize getpass
getusershell setusershell endusershell
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Fix error when GNULIB_POSIXCHECK is enabled,
Bruno Haible <=