I'm trying to debug the recent regression of git branch-1.4 M4 over M4 1.4.14 on AIX. First the gnulib stuff.
Notes: - 2 gnulib test failures in M4: test-strtod, test-rmdir. I inserted one fprintf in test-strtod.c, for the "0xp" input asserting over 'ptr == input + 1': const char input[] = "0xp"; char *ptr; double result; errno = 0; result = strtod (input, &ptr); ASSERT (result == 0.0); ASSERT (!signbit (result)); fprintf (stderr, "ptr is %lu, input + 1 is %lu\n", (unsigned long) ptr, (unsigned long) input + 1); ASSERT (ptr == input + 1); /* glibc-2.3.6, MacOS X 10.3, FreeBSD 6.2, AIX 7.1 */ ASSERT (errno == 0); $ ./test-strtod ptr is 804398203, input + 1 is 804398201 ../../m4/tests/test-strtod.c:434: assertion failed zsh: abort (core dumped) ./test-strtod I inserted one fprintf in test-rmdir.h, for the empty directory errno test: ASSERT (func (BASE "dir/.//") == -1); fprintf (stderr, "errno = %d, %s\n", errno, strerror(errno) ); ASSERT (errno == EINVAL || errno == EBUSY); $ ./test-rmdir errno = 17, File exists ../../m4/tests/test-rmdir.h:70: assertion failed zsh: abort (core dumped) ./test-rmdir In 1.4.14, only the latter fails, at the same position. - 'gnulib-tool --with-tests --test strtod rmdir' passes on this system. - 'gnulib-tool --with-tests --dir=strtod --test announce-gen assert autobuild avltree-oset binary-io c-stack clean-temp cloexec close-stream closein config-h dirname error execute fdl-1.3 fflush filenamecat fopen fopen-safer fseeko gendocs getopt-gnu git-version-gen gnu-web-doc-update gnumakefile gnupload gpl-3.0 ignore-value intprops maintainer-makefile manywarnings memchr2 mkstemp obstack pipe progname regex sigaction stdbool stdint stdlib-safer strsignal strstr strtod strtol unlocked-io update-copyright vc-list-files verror version-etc version-etc-fsf wait-process xalloc xoset xprintf xvasprintf-posix' passes as well. Any hints as to what could make the tests fail when run as part of the M4 git tree and not otherwise? CC is "cc -qlanglvl=extc89 -qlanglvl=extc99" in both cases, CFLAGS=-g. LIBOBJS contains strtod.lo respective strtod.o, in both cases config.status contains these lines: S["REPLACE_STRTOD"]="1" S["HAVE_STRTOD"]="1" S["GNULIB_STRTOD"]="1" D["HAVE_RAW_DECL_STRTOD"]=" 1" but in the 'gnulib-tool --test' directories, it also contains D["HAVE_DECL_STRTOD"]=" 1" Autoconf on this system was a bit old, 2.62.61-550a5, if you think that could matter I can retry after updating. Thanks, Ralf