[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: enforcing the use of string.h related modules
From: |
Eric Blake |
Subject: |
Re: enforcing the use of string.h related modules |
Date: |
Thu, 1 Feb 2007 05:00:46 +0000 (UTC) |
User-agent: |
Loom/3.14 (http://gmane.org/) |
Eric Blake <ebb9 <at> byu.net> writes:
> Contrary to the Changelog entry, I don't see gl_STRING_MODULE_INDICATOR
defined
> in string_h.m4.
>
I see that while I was typing this, you checked in your original proposed
change. But with your patch applied, I get the following:
gcc -I. -I../../lib -g2 -Wall -Werror -MT regex.o -MD -MP -
MF .deps/regex.Tpo -c -o regex.o ../../lib/regex.c
In file included from ../../lib/regex.c:61:
../../lib/regcomp.c: In function `rpl_regerror':
../../lib/regcomp.c:548: warning: implicit declaration of function
`mempcpy_is_unportable__use_gnulib_module_mempcpy_for_portability'
../../lib/regcomp.c: In function `init_dfa':
../../lib/regcomp.c:896: warning: implicit declaration of function
`strcasecmp_is_unportable__use_gnulib_module_strcase_for_portability'
make[2]: *** [regex.o] Error 1
One of those is due to the fact that regex did not pull in mempcpy; the other
is due to an m4 bug on your part (the translit should be part of the definition
of gl_STRING_MODULE_INDICATOR, not done prior to defining it). So I'm checking
in the patch below.
By the way, any reason you spell out abc...yz rather than relying in GNU m4's
translit range semantics? Since autoconf requires GNU m4 1.4 or better, and
since no existing GNU m4 honors locale, translit(foo,a-z,A-Z) reliably produces
FOO. Then again, I guess this could change in a future m4 2.x, if locale
support is properly introduced into m4. Meanwhile, it would be nice if
autoconf documented as_cr_letters and as_cr_LETTERS, so we could use them
without worries, for fewer characters to acheive the same result.
Also, I noticed that the dependency of
string.h: string_h
is not strong enough - fixing your typo changed configure from declaring
GNULIB_strcase to GNULIB_STRCASE, but did not regenerate string.h, so I had to
manually remove it. The problem is that I am not sure what else changes;
adding a dependency on config.status doesn't seem to be the right thing to do.
At any rate, it is more than just the string module that is affected by this
missing dependency - all of the generated headers have the same problem.
2007-01-31 Eric Blake <address@hidden>
* m4/string_h.m4 (gl_STRING_MODULE_INDICATOR): Correct m4 usage
bug.
* modules/string (Makefile.am): Remove redundant replacement.
* modules/regex (Depends-on): Add mempcpy.
Index: m4/string_h.m4
===================================================================
RCS file: /sources/gnulib/gnulib/m4/string_h.m4,v
retrieving revision 1.4
diff -u -r1.4 string_h.m4
--- m4/string_h.m4 1 Feb 2007 04:39:46 -0000 1.4
+++ m4/string_h.m4 1 Feb 2007 04:58:09 -0000
@@ -50,7 +50,7 @@
[
dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
AC_REQUIRE([gl_STRING_MODULE_INDICATOR_DEFAULTS])
- GNULIB_]translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUV
WXYZ___])[=1
+ GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQR
STUVWXYZ___])=1
])
AC_DEFUN([gl_STRING_MODULE_INDICATOR_DEFAULTS],
Index: modules/regex
===================================================================
RCS file: /sources/gnulib/gnulib/modules/regex,v
retrieving revision 1.20
diff -u -r1.20 regex
--- modules/regex 16 Jan 2007 16:31:23 -0000 1.20
+++ modules/regex 1 Feb 2007 04:58:09 -0000
@@ -16,6 +16,7 @@
extensions
gettext-h
malloc
+mempcpy
stdint
strcase
ssize_t
Index: modules/string
===================================================================
RCS file: /sources/gnulib/gnulib/modules/string,v
retrieving revision 1.3
diff -u -r1.3 string
--- modules/string 1 Feb 2007 00:29:52 -0000 1.3
+++ modules/string 1 Feb 2007 04:58:09 -0000
@@ -27,7 +27,6 @@
-e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \
-e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \
-e 's|@''GNULIB_STRCASE''@|$(GNULIB_STRCASE)|g' \
- -e 's|@''GNULIB_STRCASE''@|$(GNULIB_STRCASE)|g' \
-e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \
-e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \
-e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \
- Re: enforcing the use of string.h related modules,
Eric Blake <=