Reviving https://lists.gnu.org/archive/html/bug-autoconf/2008-11/msg00007.html https://lists.gnu.org/archive/html/bug-autoconf/2008-11/msg00008.html
There is an argument for fixing AC_C_CONST: the way it breaks caused strange errors building one package because its config.h defined const to /**/. Users shouldn't have to go digging around to figure stuff like that out. (Well, ok, any user who does ./configure CFLAGS="-Werror -Wall" is asking for it, and shouldn't mind digging around, but still.) Here's a patch that seems to do the trick, only very lightly tested.
diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4 index e4b807b..0c01197 100644 --- a/lib/autoconf/c.m4 +++ b/lib/autoconf/c.m4 @@ -1664,7 +1664,7 @@ AC_DEFUN([AC_C_CONST], #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; - const charset cs; + static const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; @@ -1682,7 +1682,7 @@ AC_DEFUN([AC_C_CONST], ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ - char *t; + char *t = 0; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; @@ -1701,7 +1701,7 @@ AC_DEFUN([AC_C_CONST], { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; + struct s *b=0; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10;