On Wed, Sep 01, 2010 at 08:08:47AM -0600, Eric Blake wrote: > On 08/31/2010 02:27 PM, Tom G. Christensen wrote: > > > >It fails to build with gcc 4.3.1 (and 4.5.0): > >gcc -std=gnu99 -I. -g -O2 -MT printf-args.o -MD -MP -MF > >.deps/printf-args.Tpo -c -o > > printf-args.o printf-args.c > >In file included from /usr/include/wchar.h:9, > > from ./wchar.h:71, > > from printf-args.h:42, > > from printf-args.c:30: > >./wctype.h:585: error: static declaration of 'iswblank' follows non-static > >declaration > >gmake[3]: *** [printf-args.o] Error 1 > > Definitely something that can be fixed in gnulib. Can you help figure > out where the earlier iswblank declaration was coming from?
Presumably from one of these system headers <internal/wctype_core.h> or <internal/wchar_core.h> which both contain this: #if defined(__c99) extern int iswblank(wint_t); #if !defined(_SGI_COMPILING_LIBC) #pragma optional iswblank #endif #endif /* __c99 */ I've uploaded the pre-processed source here: http://jupiterrise.com/tmp/printf-args.i It seems that gcc defines __c99 in -std=gnu99 mode: $ gcc -E -dM -std=gnu99 - < /dev/null|grep c99 #define __c99 1 > Also, that > particular declaration at line 585 of wctype.h (line 282 of wctype.in.h) > is guarded by: > > #if ! @HAVE_ISWCNTRL@ || @REPLACE_ISWCNTRL@ > #elif ! @HAVE_ISWBLANK@ > > So knowing the value of all the HAVE_IS* and REPLACE_IS* from config.log > would be useful to help diagnose what is going wrong here. > I've uploaded the config log here: http://jupiterrise.com/tmp/m4-1.4.14.9-edf2d-irix65-gcc450_config.log Forcing ac_cv_func_iswblank=yes ends with a linker error confirming that iswblank really is missing. > > >$ ./test-update-copyright.sh > >--- - 2010-08-31 22:20:22.990686000 +0200 > >+++ update-copyright.test-ex-stderr 2010-08-31 22:20:22.981772600 +0200 > >@@ -1,2 +1 @@ > >-update-copyright.test-ex.4: warning: FSF copyright statement not found > >-update-copyright.test-ex.5: warning: FSF copyright statement not found > >+./test-update-copyright.sh[95]: update-copyright: not found > > Regex gone wrong somewhere? Maybe due to an older perl bug? What > version of perl are you using? > It picked up the system perl in /usr/sbin which is 5.004_05. Rerunning with nekoware perl (5.8.8) first in the path fixes this. > > > >$ ./test-vc-list-files-cvs.sh > >non-numeric argument > >init.sh: failed test: Cannot create directory > >"/usr/people/tgc/tmp/m4-1.4.14.9-edf2d/tests/gt-init.sh.": File exists > >Cannot create directory "vc-cvs": File exists > >Cannot create directory "vc-cvs": File exists > > Can you rerun this test as 'sh -vx ./test-vc-list-files-cvs.sh', so we > can see which lines are failing? Again, this test is for a maintainer > program, and failure here has no bearing on m4 itself. > Sure but it's still in the testsuite. It wants to reexec itself with zsh: + exec zsh ./test-vc-list-files-cvs.sh --no-reexec non-numeric argument init.sh: failed test: Cannot create directory "/usr/people/tgc/tmp/m4-1.4.14.9-edf2d/tests/gt-init.sh.": File exists Cannot create directory "vc-cvs": File exists Cannot create directory "vc-cvs": File exists $ zsh --version zsh 4.3.2 (mips-sgi-irix6.5) bash 3.1.16 is also in the path but is for some reason rejected. Removing zsh from the PATH causes the test to be skipped because no adequate shell can be found. Full output at: http://jupiterrise.com/tmp/sh_vx_test-vc-list-files-cvs.out -tgc