[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
link-warning usage improvements
From: |
Eric Blake |
Subject: |
link-warning usage improvements |
Date: |
Thu, 24 Dec 2009 07:20:39 -0700 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.23) Gecko/20090812 Thunderbird/2.0.0.23 Mnenhy/0.7.6.666 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I've noticed that several modules use link-warning, but only conditionally
build the replacement header. The simplest example of this is isblank and
ctype.in.h - since the only thing in that file that used GL_LINK_WARNING
was isblank, but glibc includes isblank, the replacement ctype.in.h is not
built and you can use isblank on a glibc system without realizing the
portability pitfall, even if you do CFLAGS=-DGNULIB_POSIXCHECK.
Here's the full list of suspect modules. Any objections to a patch that
makes replacement of these headers unconditional, so that
GNULIB_POSIXCHECK will work better?
modules/arpa_inet:BUILT_SOURCES += $(ARPA_INET_H)
modules/ctype:BUILT_SOURCES += $(CTYPE_H)
modules/dirent:BUILT_SOURCES += $(DIRENT_H)
modules/inttypes:BUILT_SOURCES += $(INTTYPES_H)
modules/spawn:BUILT_SOURCES += $(SPAWN_H)
modules/sys_file:BUILT_SOURCES += $(SYS_FILE_H)
modules/sys_ioctl:BUILT_SOURCES += $(SYS_IOCTL_H)
modules/sys_select:BUILT_SOURCES += $(SYS_SELECT_H)
modules/sys_socket:BUILT_SOURCES += $(SYS_SOCKET_H)
modules/sys_times:BUILT_SOURCES += $(SYS_TIMES_H)
modules/sys_utsname:BUILT_SOURCES += $(SYS_UTSNAME_H)
modules/sys_wait:BUILT_SOURCES += $(SYS_WAIT_H)
modules/wchar:BUILT_SOURCES += $(WCHAR_H)
Meanwhile, several *.in.h files used GL_LINK_WARNING without ensuring that
it was defined. I'm checking in this:
- --
Don't work too hard, make some time for fun as well!
Eric Blake address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAkszeLcACgkQ84KuGfSFAYDWgACfSXR5I10RYkolAYgGUjZOfjlh
2RoAnjgSTI9dBAORS1PTlMiw4zjAzzoy
=Ed6H
-----END PGP SIGNATURE-----
>From 537954867056ac60b50168b79ec6c0f6d6ba9103 Mon Sep 17 00:00:00 2001
From: Eric Blake <address@hidden>
Date: Thu, 24 Dec 2009 07:19:23 -0700
Subject: [PATCH] link-warning: make usage consistent
Ensure GL_LINK_WARNING is defined before use.
* modules/ctype (Depends-on): Add link-warning.
(Makefile.am): Update rules accordingly.
* modules/langinfo (Depends-on, Makefile.am): Likewise.
* modules/locale (Depends-on, Makefile.am): Likewise.
* modules/sys_file (Makefile.am): Likewise.
* lib/ctype.in.h (GL_LINK_WARNING): Ensure definition before use.
* lib/langinfo.in.h (GL_LINK_WARNING): Likewise.
* lib/locale.in.h (GL_LINK_WARNING): Likewise.
* lib/sys_file.in.h (GL_LINK_WARNING): Likewise.
Signed-off-by: Eric Blake <address@hidden>
---
ChangeLog | 11 +++++++++++
lib/ctype.in.h | 2 ++
lib/langinfo.in.h | 1 +
lib/locale.in.h | 2 ++
lib/sys_file.in.h | 3 ++-
modules/ctype | 4 +++-
modules/langinfo | 6 ++++--
modules/locale | 4 +++-
modules/sys_file | 3 ++-
9 files changed, 30 insertions(+), 6 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 3cca24c..ae8338e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
2009-12-24 Eric Blake <address@hidden>
+ link-warning: make usage consistent
+ * modules/ctype (Depends-on): Add link-warning.
+ (Makefile.am): Update rules accordingly.
+ * modules/langinfo (Depends-on, Makefile.am): Likewise.
+ * modules/locale (Depends-on, Makefile.am): Likewise.
+ * modules/sys_file (Makefile.am): Likewise.
+ * lib/ctype.in.h (GL_LINK_WARNING): Ensure definition before use.
+ * lib/langinfo.in.h (GL_LINK_WARNING): Likewise.
+ * lib/locale.in.h (GL_LINK_WARNING): Likewise.
+ * lib/sys_file.in.h (GL_LINK_WARNING): Likewise.
+
tests: add signature checks
* tests/signature.h (SIGNATURE_CHECK): New file.
* modules/atexit-tests (Files): Use it.
diff --git a/lib/ctype.in.h b/lib/ctype.in.h
index d1a3c5b..ba90077 100644
--- a/lib/ctype.in.h
+++ b/lib/ctype.in.h
@@ -36,6 +36,8 @@
#ifndef _GL_CTYPE_H
#define _GL_CTYPE_H
+/* The definition of GL_LINK_WARNING is copied here. */
+
/* Return non-zero if c is a blank, i.e. a space or tab character. */
#if @GNULIB_ISBLANK@
# if address@hidden@
diff --git a/lib/langinfo.in.h b/lib/langinfo.in.h
index fc27826..26678cc 100644
--- a/lib/langinfo.in.h
+++ b/lib/langinfo.in.h
@@ -123,6 +123,7 @@ typedef int nl_item;
#endif
+/* The definition of GL_LINK_WARNING is copied here. */
/* Declare overridden functions. */
diff --git a/lib/locale.in.h b/lib/locale.in.h
index 478795a..3a79c53 100644
--- a/lib/locale.in.h
+++ b/lib/locale.in.h
@@ -34,6 +34,8 @@
# include <xlocale.h>
#endif
+/* The definition of GL_LINK_WARNING is copied here. */
+
/* The definition of _GL_ARG_NONNULL is copied here. */
/* The LC_MESSAGES locale category is specified in POSIX, but not in ISO C.
diff --git a/lib/sys_file.in.h b/lib/sys_file.in.h
index a8f81fe..58a73aa 100644
--- a/lib/sys_file.in.h
+++ b/lib/sys_file.in.h
@@ -1,6 +1,6 @@
/* Provide a more complete sys/file.h.
- Copyright (C) 2007-2008 Free Software Foundation, Inc.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -31,6 +31,7 @@
#ifndef _GL_SYS_FILE_H
#define _GL_SYS_FILE_H
+/* The definition of GL_LINK_WARNING is copied here. */
#if @GNULIB_FLOCK@
/* Apply or remove advisory locks on an open file.
diff --git a/modules/ctype b/modules/ctype
index b0ebf1b..e896814 100644
--- a/modules/ctype
+++ b/modules/ctype
@@ -7,6 +7,7 @@ m4/ctype.m4
Depends-on:
include_next
+link-warning
configure.ac:
gl_CTYPE_H
@@ -16,7 +17,7 @@ BUILT_SOURCES += $(CTYPE_H)
# We need the following in order to create <ctype.h> when the system
# doesn't have one that works with the given compiler.
-ctype.h: ctype.in.h
+ctype.h: ctype.in.h $(LINK_WARNING_H)
$(AM_V_GEN)rm -f address@hidden $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
@@ -24,6 +25,7 @@ ctype.h: ctype.in.h
-e 's|@''NEXT_CTYPE_H''@|$(NEXT_CTYPE_H)|g' \
-e 's/@''GNULIB_ISBLANK''@/$(GNULIB_ISBLANK)/g' \
-e 's/@''HAVE_ISBLANK''@/$(HAVE_ISBLANK)/g' \
+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
< $(srcdir)/ctype.in.h; \
} > address@hidden && \
mv address@hidden $@
diff --git a/modules/langinfo b/modules/langinfo
index f9b0a2f..fb413d0 100644
--- a/modules/langinfo
+++ b/modules/langinfo
@@ -6,8 +6,9 @@ lib/langinfo.in.h
m4/langinfo_h.m4
Depends-on:
-include_next
extensions
+include_next
+link-warning
configure.ac:
gl_LANGINFO_H
@@ -17,7 +18,7 @@ BUILT_SOURCES += $(LANGINFO_H)
# We need the following in order to create an empty placeholder for
# <langinfo.h> when the system doesn't have one.
-langinfo.h: langinfo.in.h
+langinfo.h: langinfo.in.h $(LINK_WARNING_H)
$(AM_V_GEN)rm -f address@hidden $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
sed -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \
@@ -29,6 +30,7 @@ langinfo.h: langinfo.in.h
-e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \
-e 's|@''HAVE_NL_LANGINFO''@|$(HAVE_NL_LANGINFO)|g' \
-e 's|@''REPLACE_NL_LANGINFO''@|$(REPLACE_NL_LANGINFO)|g' \
+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
< $(srcdir)/langinfo.in.h; \
} > address@hidden && \
mv address@hidden $@
diff --git a/modules/locale b/modules/locale
index 60d6081..2541300 100644
--- a/modules/locale
+++ b/modules/locale
@@ -9,6 +9,7 @@ Depends-on:
include_next
arg-nonnull
extensions
+link-warning
stddef
configure.ac:
@@ -19,7 +20,7 @@ BUILT_SOURCES += $(LOCALE_H)
# We need the following in order to create <locale.h> when the system
# doesn't have one that provides all definitions.
-locale.h: locale.in.h $(ARG_NONNULL_H)
+locale.h: locale.in.h $(LINK_WARNING_H) $(ARG_NONNULL_H)
$(AM_V_GEN)rm -f address@hidden $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
@@ -28,6 +29,7 @@ locale.h: locale.in.h $(ARG_NONNULL_H)
-e 's|@''GNULIB_DUPLOCALE''@|$(GNULIB_DUPLOCALE)|g' \
-e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \
-e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \
+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
< $(srcdir)/locale.in.h; \
} > address@hidden && \
diff --git a/modules/sys_file b/modules/sys_file
index 593604c..61c6202 100644
--- a/modules/sys_file
+++ b/modules/sys_file
@@ -18,7 +18,7 @@ BUILT_SOURCES += $(SYS_FILE_H)
# We need the following in order to create <sys/file.h> when the system
# has one that is incomplete.
-sys/file.h: sys_file.in.h
+sys/file.h: sys_file.in.h $(LINK_WARNING_H)
$(AM_V_at)$(MKDIR_P) sys
$(AM_V_GEN)rm -f address@hidden $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
@@ -28,6 +28,7 @@ sys/file.h: sys_file.in.h
-e 's|@''NEXT_SYS_FILE_H''@|$(NEXT_SYS_FILE_H)|g' \
-e 's/@''HAVE_FLOCK''@/$(HAVE_FLOCK)/g' \
-e 's/@''GNULIB_FLOCK''@/$(GNULIB_FLOCK)/g' \
+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
< $(srcdir)/sys_file.in.h; \
} > address@hidden && \
mv address@hidden $@
--
1.6.4.2
- link-warning usage improvements,
Eric Blake <=
- Re: link-warning usage improvements, Jim Meyering, 2009/12/24
- Re: link-warning usage improvements, Bruno Haible, 2009/12/24
- Re: link-warning usage improvements, Eric Blake, 2009/12/30
- Re: link-warning usage improvements, Eric Blake, 2009/12/31
- Re: link-warning usage improvements, Bruno Haible, 2009/12/31
- Re: link-warning usage improvements, Bruno Haible, 2009/12/31
- Re: link-warning usage improvements, Eric Blake, 2009/12/31
- Re: link-warning usage improvements, Bruno Haible, 2009/12/31
- Re: link-warning usage improvements, Bruno Haible, 2009/12/31
- Re: link-warning usage improvements, Eric Blake, 2009/12/31