Commit cbd5934b authored by Eric Blake's avatar Eric Blake

warn-on-use: use instead of link-warning

Each *.in.h file serves two purposes - provide enough self-contained
content to serve as a replacement for the system header regardless of
the user's compiler, and offer the developer the ability to detect any
gnulib modules that might have been inadvertantly excluded.  The
former requires independence from config.h, and routes everything
through a Makefile.am snippet that uses @@ substitution specific to
the modules that were in use, with details learned at configure time.

The latter works by poisoning anything that gnulib did not replace,
but which the developer had natively available, explaining why their
tests passed during development.  Poisoning relies on gcc features,
and requires manual triggering by adding -DGNULIB_POSIXCHECK to
CFLAGS; it assumes that <config.h> is properly included.  In fact, we
do not want to use @@ substitution for HAVE_DECL_* during poisoning,
because the warning is only relevant for the gnulib modules which were
not included, and thus where the m4 macros to set proper @@ values
have not been run.  Furthermore, we only need to poison interfaces
that already have a declaration; if something is not declared, then
the developer wouldn't have been able to link, so their code won't be
using the problematic interface in the first place.

* modules/stdio (Depends-on, Makefile.am): Drop link-warning.
* modules/unistd (Depends-on, Makefile.am): Likewise.
* modules/arpa_inet (Depends-on): Replace link-warning with
warn-on-use.
(Makefile.am): Update rules accordingly.
* modules/ctype (Depends-on, Makefile.am): Likewise.
* modules/dirent (Depends-on, Makefile.am): Likewise.
* modules/fcntl-h (Depends-on, Makefile.am): Likewise.
* modules/inttypes (Depends-on, Makefile.am): Likewise.
* modules/langinfo (Depends-on, Makefile.am): Likewise.
* modules/locale (Depends-on, Makefile.am): Likewise.
* modules/math (Depends-on, Makefile.am): Likewise.
* modules/search (Depends-on, Makefile.am): Likewise.
* modules/signal (Depends-on, Makefile.am): Likewise.
* modules/spawn (Depends-on, Makefile.am): Likewise.
* modules/stdlib (Depends-on, Makefile.am): Likewise.
* modules/string (Depends-on, Makefile.am): Likewise.
* modules/strings (Depends-on, Makefile.am): Likewise.
* modules/sys_file (Depends-on, Makefile.am): Likewise.
* modules/sys_ioctl (Depends-on, Makefile.am): Likewise.
* modules/sys_select (Depends-on, Makefile.am): Likewise.
* modules/sys_socket (Depends-on, Makefile.am): Likewise.
* modules/sys_stat (Depends-on, Makefile.am): Likewise.
* modules/sys_times (Depends-on, Makefile.am): Likewise.
* modules/sys_utsname (Depends-on, Makefile.am): Likewise.
* modules/wchar (Depends-on, Makefile.am): Likewise.
* m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET): Check which functions
should be poisoned.
* m4/ctype.m4 (gl_CTYPE_H): Likewise.
* m4/dirent_h.m4 (gl_DIRENT_H): Likewise.
* m4/fcntl_h.m4 (gl_FCNTL_H): Likewise.
* m4/inttypes.m4 (gl_INTTYPES_H): Likewise.
* m4/langinfo_h.m4 (gl_LANGINFO_H): Likewise.
* m4/locale_h.m4 (gl_LOCALE_H): Likewise.
* m4/math_h.m4 (gl_MATH_H): Likewise.
* m4/search_h.m4 (gl_SEARCH_H): Likewise.
* m4/signal_h.m4 (gl_SIGNAL_H): Likewise.
* m4/spawn_h.m4 (gl_SPAWN_H): Likewise.
* m4/stdio_h.m4 (gl_STDIO_H): Likewise.
* m4/stdlib_h.m4 (gl_STDLIB_H): Likewise.
* m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Likewise.
* m4/strings_h.m4 (gl_HEADER_STRINGS_H_BODY): Likewise.
* m4/sys_file_h.m4 (gl_HEADER_SYS_FILE_H_DEFAULTS): Likewise.
* m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H): Likewise.
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise.
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Likewise.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Likewise.
* m4/sys_times_h.m4 (gl_SYS_TIMES_H): Likewise.
* m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H): Likewise.
* m4/wchar.m4 (gl_WCHAR_H): Likewise.
* lib/arpa_inet.in.h: Use _GL_WARN_ON_USE instead of
GL_LINK_WARNING.
* lib/ctype.in.h: Likewise.
* lib/dirent.in.h: Likewise.
* lib/fcntl.in.h: Likewise.
* lib/inttypes.in.h: Likewise.
* lib/langinfo.in.h: Likewise.
* lib/locale.in.h: Likewise.
* lib/math.in.h: Likewise.
* lib/search.in.h: Likewise.
* lib/signal.in.h: Likewise.
* lib/spawn.in.h: Likewise.
* lib/stdio.in.h: Likewise.
* lib/stdlib.in.h: Likewise.
* lib/string.in.h: Likewise.
* lib/strings.in.h: Likewise.
* lib/sys_file.in.h: Likewise.
* lib/sys_ioctl.in.h: Likewise.
* lib/sys_select.in.h: Likewise.
* lib/sys_socket.in.h: Likewise.
* lib/sys_stat.in.h: Likewise.
* lib/sys_times.in.h: Likewise.
* lib/sys_utsname.in.h: Likewise.
* lib/unistd.in.h: Likewise.
* lib/wchar.in.h: Likewise.
Signed-off-by: 's avatarEric Blake <ebb9@byu.net>
parent b4349b94
2010-01-20 Eric Blake <ebb9@byu.net>
warn-on-use: use instead of link-warning
* modules/stdio (Depends-on, Makefile.am): Drop link-warning.
* modules/unistd (Depends-on, Makefile.am): Likewise.
* modules/arpa_inet (Depends-on): Replace link-warning with
warn-on-use.
(Makefile.am): Update rules accordingly.
* modules/ctype (Depends-on, Makefile.am): Likewise.
* modules/dirent (Depends-on, Makefile.am): Likewise.
* modules/fcntl-h (Depends-on, Makefile.am): Likewise.
* modules/inttypes (Depends-on, Makefile.am): Likewise.
* modules/langinfo (Depends-on, Makefile.am): Likewise.
* modules/locale (Depends-on, Makefile.am): Likewise.
* modules/math (Depends-on, Makefile.am): Likewise.
* modules/search (Depends-on, Makefile.am): Likewise.
* modules/signal (Depends-on, Makefile.am): Likewise.
* modules/spawn (Depends-on, Makefile.am): Likewise.
* modules/stdlib (Depends-on, Makefile.am): Likewise.
* modules/string (Depends-on, Makefile.am): Likewise.
* modules/strings (Depends-on, Makefile.am): Likewise.
* modules/sys_file (Depends-on, Makefile.am): Likewise.
* modules/sys_ioctl (Depends-on, Makefile.am): Likewise.
* modules/sys_select (Depends-on, Makefile.am): Likewise.
* modules/sys_socket (Depends-on, Makefile.am): Likewise.
* modules/sys_stat (Depends-on, Makefile.am): Likewise.
* modules/sys_times (Depends-on, Makefile.am): Likewise.
* modules/sys_utsname (Depends-on, Makefile.am): Likewise.
* modules/wchar (Depends-on, Makefile.am): Likewise.
* m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET): Check which functions
should be poisoned.
* m4/ctype.m4 (gl_CTYPE_H): Likewise.
* m4/dirent_h.m4 (gl_DIRENT_H): Likewise.
* m4/fcntl_h.m4 (gl_FCNTL_H): Likewise.
* m4/inttypes.m4 (gl_INTTYPES_H): Likewise.
* m4/langinfo_h.m4 (gl_LANGINFO_H): Likewise.
* m4/locale_h.m4 (gl_LOCALE_H): Likewise.
* m4/math_h.m4 (gl_MATH_H): Likewise.
* m4/search_h.m4 (gl_SEARCH_H): Likewise.
* m4/signal_h.m4 (gl_SIGNAL_H): Likewise.
* m4/spawn_h.m4 (gl_SPAWN_H): Likewise.
* m4/stdio_h.m4 (gl_STDIO_H): Likewise.
* m4/stdlib_h.m4 (gl_STDLIB_H): Likewise.
* m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Likewise.
* m4/strings_h.m4 (gl_HEADER_STRINGS_H_BODY): Likewise.
* m4/sys_file_h.m4 (gl_HEADER_SYS_FILE_H_DEFAULTS): Likewise.
* m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H): Likewise.
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise.
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Likewise.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Likewise.
* m4/sys_times_h.m4 (gl_SYS_TIMES_H): Likewise.
* m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H): Likewise.
* m4/wchar.m4 (gl_WCHAR_H): Likewise.
* lib/arpa_inet.in.h: Use _GL_WARN_ON_USE instead of
GL_LINK_WARNING.
* lib/ctype.in.h: Likewise.
* lib/dirent.in.h: Likewise.
* lib/fcntl.in.h: Likewise.
* lib/inttypes.in.h: Likewise.
* lib/langinfo.in.h: Likewise.
* lib/locale.in.h: Likewise.
* lib/math.in.h: Likewise.
* lib/search.in.h: Likewise.
* lib/signal.in.h: Likewise.
* lib/spawn.in.h: Likewise.
* lib/stdio.in.h: Likewise.
* lib/stdlib.in.h: Likewise.
* lib/string.in.h: Likewise.
* lib/strings.in.h: Likewise.
* lib/sys_file.in.h: Likewise.
* lib/sys_ioctl.in.h: Likewise.
* lib/sys_select.in.h: Likewise.
* lib/sys_socket.in.h: Likewise.
* lib/sys_stat.in.h: Likewise.
* lib/sys_times.in.h: Likewise.
* lib/sys_utsname.in.h: Likewise.
* lib/unistd.in.h: Likewise.
* lib/wchar.in.h: Likewise.
2010-01-20 Bruno Haible <bruno@clisp.org>
Avoid duplicate -lm.
......@@ -39,10 +39,10 @@
#ifndef _GL_ARPA_INET_H
#define _GL_ARPA_INET_H
/* The definition of GL_LINK_WARNING is copied here. */
/* The definition of _GL_ARG_NONNULL is copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
#ifdef __cplusplus
extern "C" {
#endif
......@@ -70,10 +70,10 @@ extern const char *inet_ntop (int af, const void *restrict src,
# endif
#elif defined GNULIB_POSIXCHECK
# undef inet_ntop
# define inet_ntop(af,src,dst,cnt) \
(GL_LINK_WARNING ("inet_ntop is unportable - " \
"use gnulib module inet_ntop for portability"), \
inet_ntop (af, src, dst, cnt))
# if HAVE_RAW_DECL_INET_NTOP
_GL_WARN_ON_USE (inet_ntop, "inet_ntop is unportable - "
"use gnulib module inet_ntop for portability");
# endif
#endif
#if @GNULIB_INET_PTON@
......@@ -83,10 +83,10 @@ extern int inet_pton (int af, const char *restrict src, void *restrict dst)
# endif
#elif defined GNULIB_POSIXCHECK
# undef inet_pton
# define inet_pton(af,src,dst) \
(GL_LINK_WARNING ("inet_pton is unportable - " \
"use gnulib module inet_pton for portability"), \
inet_pton (af, src, dst))
# if HAVE_RAW_DECL_INET_PTON
_GL_WARN_ON_USE (inet_pton, "inet_pton is unportable - "
"use gnulib module inet_pton for portability");
# endif
#endif
#ifdef __cplusplus
......
......@@ -36,7 +36,7 @@
#ifndef _GL_CTYPE_H
#define _GL_CTYPE_H
/* The definition of GL_LINK_WARNING is copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
/* Return non-zero if c is a blank, i.e. a space or tab character. */
#if @GNULIB_ISBLANK@
......@@ -45,10 +45,10 @@ extern int isblank (int c);
# endif
#elif defined GNULIB_POSIXCHECK
# undef isblank
# define isblank(c) \
(GL_LINK_WARNING ("isblank is unportable - " \
"use gnulib module isblank for portability"), \
isblank (c))
# if HAVE_RAW_DECL_ISBLANK
_GL_WARN_ON_USE (isblank, "isblank is unportable - "
"use gnulib module isblank for portability");
# endif
#endif
#endif /* _GL_CTYPE_H */
......
......@@ -29,10 +29,9 @@
/* Get ino_t. Needed on some systems, including glibc 2.8. */
#include <sys/types.h>
/* The definition of GL_LINK_WARNING is copied here. */
/* The definition of _GL_ARG_NONNULL is copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
#ifdef __cplusplus
extern "C" {
......@@ -53,10 +52,10 @@ extern int dirfd (DIR *dir) _GL_ARG_NONNULL ((1));
# endif
#elif defined GNULIB_POSIXCHECK
# undef dirfd
# define dirfd(d) \
(GL_LINK_WARNING ("dirfd is unportable - " \
"use gnulib module dirfd for portability"), \
dirfd (d))
# if HAVE_RAW_DECL_DIRFD
_GL_WARN_ON_USE (dirfd, "dirfd is unportable - "
"use gnulib module dirfd for portability");
# endif
#endif
#if @GNULIB_FDOPENDIR@
......@@ -74,10 +73,10 @@ extern DIR *fdopendir (int fd);
# endif
#elif defined GNULIB_POSIXCHECK
# undef fdopendir
# define fdopendir(f) \
(GL_LINK_WARNING ("fdopendir is unportable - " \
"use gnulib module fdopendir for portability"), \
fdopendir (f))
# if HAVE_RAW_DECL_FDOPENDIR
_GL_WARN_ON_USE (fdopendir, "fdopendir is unportable - "
"use gnulib module fdopendir for portability");
# endif
#endif
#if @REPLACE_OPENDIR@
......@@ -98,10 +97,10 @@ extern int scandir (const char *dir, struct dirent ***namelist,
# endif
#elif defined GNULIB_POSIXCHECK
# undef scandir
# define scandir(d,n,f,c) \
(GL_LINK_WARNING ("scandir is unportable - " \
"use gnulib module scandir for portability"), \
scandir (d, n, f, c))
# if HAVE_RAW_DECL_SCANDIR
_GL_WARN_ON_USE (scandir, "scandir is unportable - "
"use gnulib module scandir for portability");
# endif
#endif
#if @GNULIB_ALPHASORT@
......@@ -112,10 +111,10 @@ extern int alphasort (const struct dirent **, const struct dirent **)
# endif
#elif defined GNULIB_POSIXCHECK
# undef alphasort
# define alphasort(a,b) \
(GL_LINK_WARNING ("alphasort is unportable - " \
"use gnulib module alphasort for portability"), \
alphasort (a, b))
# if HAVE_RAW_DECL_ALPHASORT
_GL_WARN_ON_USE (alphasort, "alphasort is unportable - "
"use gnulib module alphasort for portability");
# endif
#endif
#ifdef __cplusplus
......
......@@ -50,10 +50,10 @@
#endif
/* The definition of GL_LINK_WARNING is copied here. */
/* The definition of _GL_ARG_NONNULL is copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
/* Declare overridden functions. */
......@@ -71,10 +71,10 @@ extern int fcntl (int fd, int action, ...);
# endif
#elif defined GNULIB_POSIXCHECK
# undef fcntl
# define fcntl \
(GL_LINK_WARNING ("fcntl is not always POSIX compliant - " \
"use gnulib module fcntl for portability"), \
fcntl)
# if HAVE_RAW_DECL_FCNTL
_GL_WARN_ON_USE (fcntl, "fcntl is not always POSIX compliant - "
"use gnulib module fcntl for portability");
# endif
#endif
#if @GNULIB_OPEN@
......@@ -85,10 +85,9 @@ extern int open (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1));
# endif
#elif defined GNULIB_POSIXCHECK
# undef open
# define open \
(GL_LINK_WARNING ("open is not always POSIX compliant - " \
"use gnulib module open for portability"), \
open)
/* Assume open is always declared. */
_GL_WARN_ON_USE (open, "open is not always POSIX compliant - "
"use gnulib module open for portability");
#endif
#if @GNULIB_OPENAT@
......@@ -102,10 +101,10 @@ extern int openat (int fd, char const *file, int flags, /* mode_t mode */ ...)
# endif
#elif defined GNULIB_POSIXCHECK
# undef openat
# define openat \
(GL_LINK_WARNING ("openat is not portable - " \
"use gnulib module openat for portability"), \
openat)
# if HAVE_RAW_DECL_OPENAT
_GL_WARN_ON_USE (openat, "openat is not portable - "
"use gnulib module openat for portability");
# endif
#endif
#ifdef __cplusplus
......
......@@ -48,10 +48,10 @@
# error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to <bug-gnulib@gnu.org>."
#endif
/* The definition of GL_LINK_WARNING is copied here. */
/* The definition of _GL_ARG_NONNULL is copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
/* 7.8.1 Macros for format specifiers */
#if ! defined __cplusplus || defined __STDC_FORMAT_MACROS
......@@ -1050,10 +1050,10 @@ extern intmax_t imaxabs (intmax_t);
# endif
#elif defined GNULIB_POSIXCHECK
# undef imaxabs
# define imaxabs(a) \
(GL_LINK_WARNING ("imaxabs is unportable - " \
"use gnulib module imaxabs for portability"), \
imaxabs (a))
# if HAVE_RAW_DECL_IMAXABS
_GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - "
"use gnulib module imaxabs for portability");
# endif
#endif
#if @GNULIB_IMAXDIV@
......@@ -1063,10 +1063,10 @@ extern imaxdiv_t imaxdiv (intmax_t, intmax_t);
# endif
#elif defined GNULIB_POSIXCHECK
# undef imaxdiv
# define imaxdiv(a,b) \
(GL_LINK_WARNING ("imaxdiv is unportable - " \
"use gnulib module imaxdiv for portability"), \
imaxdiv (a, b))
# if HAVE_RAW_DECL_IMAXDIV
_GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - "
"use gnulib module imaxdiv for portability");
# endif
#endif
#if @GNULIB_STRTOIMAX@
......@@ -1075,10 +1075,10 @@ extern intmax_t strtoimax (const char *, char **, int) _GL_ARG_NONNULL ((1));
# endif
#elif defined GNULIB_POSIXCHECK
# undef strtoimax
# define strtoimax(p,e,b) \
(GL_LINK_WARNING ("strtoimax is unportable - " \
"use gnulib module strtoimax for portability"), \
strtoimax (p, e, b))
# if HAVE_RAW_DECL_STRTOIMAX
_GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - "
"use gnulib module strtoimax for portability");
# endif
#endif
#if @GNULIB_STRTOUMAX@
......@@ -1087,10 +1087,10 @@ extern uintmax_t strtoumax (const char *, char **, int) _GL_ARG_NONNULL ((1));
# endif
#elif defined GNULIB_POSIXCHECK
# undef strtoumax
# define strtoumax(p,e,b) \
(GL_LINK_WARNING ("strtoumax is unportable - " \
"use gnulib module strtoumax for portability"), \
strtoumax (p, e, b))
# if HAVE_RAW_DECL_STRTOUMAX
_GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - "
"use gnulib module strtoumax for portability");
# endif
#endif
/* Don't bother defining or declaring wcstoimax and wcstoumax, since
......
......@@ -123,7 +123,7 @@ typedef int nl_item;
#endif
/* The definition of GL_LINK_WARNING is copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
/* Declare overridden functions. */
......@@ -146,10 +146,10 @@ extern char *nl_langinfo (nl_item item);
# endif
#elif defined GNULIB_POSIXCHECK
# undef nl_langinfo
# define nl_langinfo(i) \
(GL_LINK_WARNING ("nl_langinfo is not portable - " \
"use gnulib module nl_langinfo for portability"), \
nl_langinfo (i))
# if HAVE_RAW_DECL_NL_LANGINFO
_GL_WARN_ON_USE (nl_langinfo, "nl_langinfo is not portable - "
"use gnulib module nl_langinfo for portability");
# endif
#endif
......
......@@ -34,10 +34,10 @@
# include <xlocale.h>
#endif
/* The definition of GL_LINK_WARNING is copied here. */
/* The definition of _GL_ARG_NONNULL is copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
/* The LC_MESSAGES locale category is specified in POSIX, but not in ISO C.
On systems that don't define it, use the same value as GNU libintl. */
#if !defined LC_MESSAGES
......@@ -52,10 +52,10 @@ extern locale_t duplocale (locale_t locale) _GL_ARG_NONNULL ((1));
# endif
#elif defined GNULIB_POSIXCHECK
# undef duplocale
# define duplocale(l) \
(GL_LINK_WARNING ("duplocale is buggy on some glibc systems - " \
"use gnulib module duplocale for portability"), \
duplocale (l))
# if HAVE_RAW_DECL_DUPLOCALE
_GL_WARN_ON_USE (duplocale, "duplocale is buggy on some glibc systems - "
"use gnulib module duplocale for portability");
# endif
#endif
#endif /* _GL_LOCALE_H */
......
This diff is collapsed.
......@@ -29,10 +29,10 @@
#define _GL_SEARCH_H
/* The definition of GL_LINK_WARNING is copied here. */
/* The definition of _GL_ARG_NONNULL is copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
#ifdef __cplusplus
extern "C" {
......@@ -101,25 +101,25 @@ extern void twalk (const void *vroot,
# endif
#elif defined GNULIB_POSIXCHECK
# undef tsearch
# define tsearch(k,v,c) \
(GL_LINK_WARNING ("tsearch is unportable - " \
"use gnulib module tsearch for portability"), \
tsearch (k, v, c))
# if HAVE_RAW_DECL_TSEARCH
_GL_WARN_ON_USE (tsearch, "tsearch is unportable - "
"use gnulib module tsearch for portability");
# endif
# undef tfind
# define tfind(k,v,c) \
(GL_LINK_WARNING ("tfind is unportable - " \
"use gnulib module tsearch for portability"), \
tfind (k, v, c))
# if HAVE_RAW_DECL_TFIND
_GL_WARN_ON_USE (tfind, "tfind is unportable - "
"use gnulib module tsearch for portability");
# endif
# undef tdelete
# define tdelete(k,v,c) \
(GL_LINK_WARNING ("tdelete is unportable - " \
"use gnulib module tsearch for portability"), \
tdelete (k, v, c))
# if HAVE_RAW_DECL_TDELETE
_GL_WARN_ON_USE (tdelete, "tdelete is unportable - "
"use gnulib module tsearch for portability");
# endif
# undef twalk
# define twalk(v,a) \
(GL_LINK_WARNING ("twalk is unportable - " \
"use gnulib module tsearch for portability"), \
twalk (v, a))
# if HAVE_RAW_DECL_TWALK
_GL_WARN_ON_USE (twalk, "twalk is unportable - "
"use gnulib module tsearch for portability");
# endif
#endif
......
......@@ -35,10 +35,10 @@
#ifndef _GL_SIGNAL_H
#define _GL_SIGNAL_H
/* The definition of GL_LINK_WARNING is copied here. */
/* The definition of _GL_ARG_NONNULL is copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
/* Define pid_t, uid_t.
Also, mingw defines sigset_t not in <signal.h>, but in <sys/types.h>. */
#include <sys/types.h>
......@@ -129,40 +129,40 @@ extern int raise (int sig);
# endif /* !@HAVE_POSIX_SIGNALBLOCKING@ */
#elif defined GNULIB_POSIXCHECK
# undef sigaddset
# define sigaddset(s,n) \
(GL_LINK_WARNING ("sigaddset is unportable - " \
"use gnulib module sigprocmask for portability"), \
sigaddset (s, n))
# if HAVE_RAW_DECL_SIGADDSET
_GL_WARN_ON_USE (sigaddset, "sigaddset is unportable - "
"use the gnulib module sigprocmask for portability");
# endif
# undef sigdelset
# define sigdelset(s,n) \
(GL_LINK_WARNING ("sigdelset is unportable - " \
"use gnulib module sigprocmask for portability"), \
sigdelset (s, n))
# if HAVE_RAW_DECL_SIGDELSET
_GL_WARN_ON_USE (sigdelset, "sigdelset is unportable - "
"use the gnulib module sigprocmask for portability");
# endif
# undef sigemptyset
# define sigemptyset(s) \
(GL_LINK_WARNING ("sigemptyset is unportable - " \
"use gnulib module sigprocmask for portability"), \
sigemptyset (s))
# if HAVE_RAW_DECL_SIGEMPTYSET
_GL_WARN_ON_USE (sigemptyset, "sigemptyset is unportable - "
"use the gnulib module sigprocmask for portability");
# endif
# undef sigfillset
# define sigfillset(s) \
(GL_LINK_WARNING ("sigfillset is unportable - " \
"use gnulib module sigprocmask for portability"), \
sigfillset (s))
# if HAVE_RAW_DECL_SIGFILLSET
_GL_WARN_ON_USE (sigfillset, "sigfillset is unportable - "
"use the gnulib module sigprocmask for portability");
# endif
# undef sigismember
# define sigismember(s,n) \
(GL_LINK_WARNING ("sigismember is unportable - " \
"use gnulib module sigprocmask for portability"), \
sigismember (s, n))
# if HAVE_RAW_DECL_SIGISMEMBER
_GL_WARN_ON_USE (sigismember, "sigismember is unportable - "
"use the gnulib module sigprocmask for portability");
# endif
# undef sigpending
# define sigpending(s) \
(GL_LINK_WARNING ("sigpending is unportable - " \
"use gnulib module sigprocmask for portability"), \
sigpending (s))
# if HAVE_RAW_DECL_SIGPENDING
_GL_WARN_ON_USE (sigpending, "sigpending is unportable - "
"use the gnulib module sigprocmask for portability");
# endif
# undef sigprocmask
# define sigprocmask(h,s,o) \
(GL_LINK_WARNING ("sigprocmask is unportable - " \
"use gnulib module sigprocmask for portability"), \
sigprocmask (h, s, o))
# if HAVE_RAW_DECL_SIGPROCMASK
_GL_WARN_ON_USE (sigprocmask, "sigprocmask is unportable - "
"use the gnulib module sigprocmask for portability");
# endif
#endif /* @GNULIB_SIGPROCMASK@ */
......@@ -228,10 +228,10 @@ extern int sigaction (int, const struct sigaction *restrict,
# endif /* !@HAVE_SIGACTION@, !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@ */
#elif defined GNULIB_POSIXCHECK
# undef sigaction
# define sigaction(s,a,o) \
(GL_LINK_WARNING ("sigaction is unportable - " \
"use gnulib module sigaction for portability"), \
sigaction (s, a, o))
# if HAVE_RAW_DECL_SIGACTION
_GL_WARN_ON_USE (sigaction, "sigaction is unportable - "
"use the gnulib module sigaction for portability");
# endif
#endif
/* Some systems don't have SA_NODEFER. */
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -29,10 +29,9 @@
#define _GL_STRINGS_H
/* The definition of GL_LINK_WARNING is copied here. */
/* The definition of _GL_ARG_NONNULL is copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
#ifdef __cplusplus
extern "C" {
......@@ -52,14 +51,14 @@ extern int strcasecmp (char const *s1, char const *s2)
POSIX says that it operates on "strings", and "string" in POSIX is defined
as a sequence of bytes, not of characters. */
# undef strcasecmp
# define strcasecmp(a,b) \
(GL_LINK_WARNING ("strcasecmp cannot work correctly on character strings " \
"in multibyte locales - " \
"use mbscasecmp if you care about " \
"internationalization, or use c_strcasecmp (from " \
"gnulib module c-strcase) if you want a locale " \
"independent function"), \
strcasecmp (a, b))
# if HAVE_RAW_DECL_STRCASECMP
_GL_WARN_ON_USE (strcasecmp, "strcasecmp cannot work correctly on character "
"strings in multibyte locales - "
"use mbscasecmp if you care about "
"internationalization, or use c_strcasecmp , "
"gnulib module c-strcase) if you want a locale "
"independent function");
# endif
#endif
/* Compare no more than N bytes of strings S1 and S2, ignoring case,
......@@ -75,14 +74,14 @@ extern int strncasecmp (char const *s1, char const *s2, size_t n)
POSIX says that it operates on "strings", and "string" in POSIX is defined
as a sequence of bytes, not of characters. */
# undef strncasecmp
# define strncasecmp(a,b,n) \
(GL_LINK_WARNING ("strncasecmp cannot work correctly on character " \
"strings in multibyte locales - " \
"use mbsncasecmp or mbspcasecmp if you care about " \
"internationalization, or use c_strncasecmp (from " \
"gnulib module c-strcase) if you want a locale " \
"independent function"), \
strncasecmp (a, b, n))
# if HAVE_RAW_DECL_STRNCASECMP
_GL_WARN_ON_USE (strncasecmp, "strncasecmp cannot work correctly on character "
"strings in multibyte locales - "
"use mbsncasecmp or mbspcasecmp if you care about "
"internationalization, or use c_strncasecmp , "
"gnulib module c-strcase) if you want a locale "
"independent function");
# endif
#endif
......
......@@ -41,7 +41,7 @@
# define LOCK_NB 4 /* Don't block when locking. */
#endif
/* The definition of GL_LINK_WARNING is copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
#if @GNULIB_FLOCK@
/* Apply or remove advisory locks on an open file.
......@@ -51,10 +51,10 @@ extern int flock (int fd, int operation);
# endif
#elif defined GNULIB_POSIXCHECK
# undef flock
# define flock(fd,op) \
(GL_LINK_WARNING ("flock is unportable - " \
"use gnulib module flock for portability"), \
flock ((fd), (op)))
# if HAVE_RAW_DECL_FLOCK
_GL_WARN_ON_USE (flock, "flock is unportable - "
"use gnulib module flock for portability");
# endif
#endif
......
......@@ -36,7 +36,7 @@
# include <unistd.h>
#endif
/* The definition of GL_LINK_WARNING is copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
/* Declare overridden functions. */
......@@ -57,10 +57,10 @@ extern int ioctl (int fd, int request, ... /* {void *,char *} arg */);
# define ioctl ioctl_used_without_requesting_gnulib_module_ioctl
#elif defined GNULIB_POSIXCHECK
# undef ioctl
# define ioctl \
(GL_LINK_WARNING ("ioctl does not portably work on sockets - " \
"use gnulib module ioctl for portability"), \
ioctl)
# if HAVE_RAW_DECL_IOCTL
_GL_WARN_ON_USE (ioctl, "ioctl does not portably work on sockets - "
"use gnulib module ioctl for portability");
# endif
#endif
......
......@@ -69,7 +69,7 @@
# include <sys/socket.h>
/* The definition of GL_LINK_WARNING is copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
# ifdef __cplusplus
extern "C" {
......@@ -86,10 +86,10 @@ extern int rpl_select (int, fd_set *, fd_set *, fd_set *, struct timeval *);
# define select select_used_without_requesting_gnulib_module_select
# elif defined GNULIB_POSIXCHECK
# undef select
# define select(n,r,w,e,t) \
(GL_LINK_WARNING ("select is not always POSIX compliant - " \
"use gnulib module select for portability"), \
select (n, r, w, e, t))
# if HAVE_RAW_DECL_SELECT
_GL_WARN_ON_USE (select, "select is not always POSIX compliant - "
"use gnulib module select for portability");
# endif
# endif
# ifdef __cplusplus
......
......@@ -126,7 +126,7 @@ struct sockaddr_storage
# define SHUT_RDWR SD_BOTH
# endif
/* The definition of GL_LINK_WARNING is copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
# if @HAVE_WINSOCK2_H@
/* Include headers needed by the emulation code. */
......@@ -187,10 +187,10 @@ extern int rpl_socket (int, int, int protocol);
# define socket socket_used_without_requesting_gnulib_module_socket
# elif defined GNULIB_POSIXCHECK
# undef socket
# define socket(d,t,p) \
(GL_LINK_WARNING ("socket is not always POSIX compliant - " \
"use gnulib module socket for portability"), \
socket (d, t, p))
# if HAVE_RAW_DECL_SOCKET
_GL_WARN_ON_USE (socket, "socket is not always POSIX compliant - "
"use gnulib module socket for portability");
# endif
# endif
# if @GNULIB_CONNECT@
......@@ -204,10 +204,10 @@ extern int rpl_connect (int, struct sockaddr *, int) _GL_ARG_NONNULL ((2));
# define connect socket_used_without_requesting_gnulib_module_connect
# elif defined GNULIB_POSIXCHECK
# undef connect
# define connect(s,a,l) \
(GL_LINK_WARNING ("connect is not always POSIX compliant - " \
"use gnulib module connect for portability"), \
connect (s, a, l))
# if HAVE_RAW_DECL_CONNECT
_GL_WARN_ON_USE (connect, "connect is not always POSIX compliant - "
"use gnulib module connect for portability");
# endif
# endif
# if @GNULIB_ACCEPT@
......@@ -221,10 +221,10 @@ extern int rpl_accept (int, struct sockaddr *, int *);
# define accept accept_used_without_requesting_gnulib_module_accept
# elif defined GNULIB_POSIXCHECK
# undef accept
# define accept(s,a,l) \
(GL_LINK_WARNING ("accept is not always POSIX compliant - " \
"use gnulib module accept for portability"), \
accept (s, a, l))
# if HAVE_RAW_DECL_ACCEPT
_GL_WARN_ON_USE (accept, "accept is not always POSIX compliant - "
"use gnulib module accept for portability");
# endif
# endif
# if @GNULIB_BIND@
......@@ -238,10 +238,10 @@ extern int rpl_bind (int, struct sockaddr *, int) _GL_ARG_NONNULL ((2));
# define bind bind_used_without_requesting_gnulib_module_bind
# elif defined GNULIB_POSIXCHECK
# undef bind