-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 According to Tim Rice on 10/28/2007 7:15 PM: > > It looks like there are some regressions in 1.4.10 on some of my platforms.
Thanks for the report. Many of these issues have already been fixed in gnulib, and will thus be in m4 1.4.11 when I release that. And for those that aren't, I'm forwarding your entire mail to the gnulib list. Would you be interested in me making a snapshot for you to test? > > On my UnixWare 7.1.1 box I needed to patch lib/fpurge.c and lib/freading.c > just to get it to compile. I got errors like > .... > UX:acomp: ERROR: "/opt/src/gnu/m4-1.4.10/lib/fpurge.c", line 95: > undefined struct/union member: _ptr > .... > > Looking at stdio.h I see > .... > typedef struct _FILE_ > { > int __cnt; /* num. avail. characters in buffer */ > unsigned char *__ptr; /* next character from/to here */ > unsigned char *__base; /* the buffer (not really) */ > unsigned char __flag; /* the state of the stream */ > unsigned char __file; /* file descriptor (not necessarily) */ > unsigned char __buf[2]; /* micro buffer as a fall-back */ > } FILE; > .... > so I patched like this > .... > --- m4-1.4.10/lib/fpurge.c.old 2007-07-05 04:48:00.000000000 -0700 > +++ m4-1.4.10/lib/fpurge.c 2007-10-19 19:59:28.758956004 -0700 > @@ -92,9 +92,9 @@ > } > return 0; > # elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, > Solaris, mingw */ > - fp->_ptr = fp->_base; > - if (fp->_ptr != NULL) > - fp->_cnt = 0; > + fp->__ptr = fp->__base; > + if (fp->__ptr != NULL) > + fp->__cnt = 0; > return 0; > # elif defined __UCLIBC__ /* uClibc */ > # ifdef __STDIO_BUFFERS > --- m4-1.4.10/lib/freading.c.old 2007-07-05 04:48:00.000000000 -0700 > +++ m4-1.4.10/lib/freading.c 2007-10-22 20:44:16.222527001 -0700 > @@ -37,7 +37,7 @@ > #elif defined __sferror /* FreeBSD, NetBSD, OpenBSD, MacOS > X, Cygwin */ > return (fp->_flags & __SRD) != 0; > #elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, > Solaris, mingw */ > - return (fp->_flag & _IOREAD) != 0; > + return (fp->__flag & _IOREAD) != 0; > #elif defined __UCLIBC__ /* uClibc */ > return (fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) != 0; > #else > .... > > Additionally my OpenServer 5.0.4 box has no fseeko so it needed > lib/fseeko.c patched. > ..... > --- lib/fseeko.c.old 2007-07-05 04:48:02.000000000 -0700 > +++ lib/fseeko.c 2007-10-23 14:25:22.851251004 -0700 > @@ -80,8 +80,8 @@ > if (fp_->_ptr == fp_->_base > && (fp_->_ptr == NULL || fp_->_cnt == 0)) > # else > - if (fp->_ptr == fp->_base > - && (fp->_ptr == NULL || fp->_cnt == 0)) > + if (fp->__ptr == fp->__base > + && (fp->__ptr == NULL || fp->__cnt == 0)) > # endif > #elif defined __UCLIBC__ /* uClibc */ > if (((fp->__modeflags & __FLAG_WRITING) == 0 > ..... > > The comments in that section of code mention AIX, HP-UX, IRIX, OSF/1, > Solaris, & mingw. Of those I only have Solaris here and with the above > patches Solaris 8 & 10 still build fine and pass tests. > > On UnixWare 7.1.1 test-closein.sh fails. > .... > ./test-closein: error closing file: Illegal seek > FAIL: test-closein.sh > .... > After reading up on the OpenGroup's onlinepubs for fseeko(), I came > up with this patch. > > ..... > --- lib/closein.c.old 2007-05-30 18:30:16.000000000 -0700 > +++ lib/closein.c 2007-10-22 22:32:48.958287004 -0700 > @@ -82,8 +82,10 @@ > > /* Only attempt flush if stdin is seekable, as fflush is entitled to > fail on non-seekable streams. */ > + errno = 0; > if (fseeko (stdin, 0, SEEK_CUR) == 0 && fflush (stdin) != 0) > - fail = true; > + if(errno != ESPIPE) > + fail = true; > if (close_stream (stdin) != 0) > fail = true; > if (fail) > ..... > > On UnixWare 7.1.1 test-vasprintf-posix fails. > ..... > /opt/src/gnu/m4-1.4.10/tests/test-vasprintf-posix.c:203: assertion > failed > /bin/ksh: line 1: 13351: Abort(coredump) > FAIL: test-vasprintf-posix > ..... > I have not found a fix for this yet. > > > The build fails on Caldera OpenLinux 3.1.1 > Here is a snipet of the build log > .... > make all-am > make[2]: Entering directory `/usr/local/src/gnu/m4-1.3.10/lib' > source='/opt/src/gnu/m4-1.4.10/lib/gl_array_list.c' > object='gl_array_list.o' libtool=no \ > DEPDIR=.deps depmode=none /bin/ksh /opt/src/gnu/m4-1.4.10/depcomp \ > cc -I. -I/opt/src/gnu/m4-1.4.10/lib -g -c > /opt/src/gnu/m4-1.4.10/lib/gl_array_list.c > In file included from /opt/src/gnu/m4-1.4.10/lib/gl_array_list.h:22, > from /opt/src/gnu/m4-1.4.10/lib/gl_array_list.c:22: > /opt/src/gnu/m4-1.4.10/lib/gl_list.h:99: parse error before `*' > /opt/src/gnu/m4-1.4.10/lib/gl_list.h:99: `_Bool' declared as function > returning a function > /opt/src/gnu/m4-1.4.10/lib/gl_list.h:133: parse error before > `gl_listelement_equals_fn' > .... > I suspect 1.4.10 may not have been tested using gcc version 2.95.2. > > > The build fails on OpenServer 5.0.4 using the native compiler. > ..... > source='/opt/src/gnu/m4-1.4.10/lib/isnanf.c' object='isnanf.o' libtool=no \ > DEPDIR=.deps depmode=none /bin/ksh /opt/src/gnu/m4-1.4.10/depcomp \ > cc -I. -I/opt/src/gnu/m4-1.4.10/lib -g -c > /opt/src/gnu/m4-1.4.10/lib/isnanf.c > "/opt/src/gnu/m4-1.4.10/lib/isnan.c", line 121: error: division by 0 > "/opt/src/gnu/m4-1.4.10/lib/isnan.c", line 122: error: division by 0 > "/opt/src/gnu/m4-1.4.10/lib/isnan.c", line 123: error: division by 0 > gmake[2]: *** [isnanf.o] Error 1 > ..... > If I switch to a gcc build, it doesn't fail until building the test > programs. > ..... > source='/opt/src/gnu/m4-1.4.10/tests/test-stdint.c' > object='test-stdint.o' libtool=no \ > DEPDIR=.deps depmode=gcc /bin/ksh /opt/src/gnu/m4-1.4.10/depcomp \ > gcc -I. -I../lib -I/opt/src/gnu/m4-1.4.10/tests -I. > -I/opt/src/gnu/m4-1.4.10/tests -I.. -I/opt/src/gnu/m4-1.4.10/tests/.. > -I../lib -I/opt/src/gnu/m4-1.4.10/tests/../lib -g -O2 -c > /opt/src/gnu/m4-1.4.10/tests/test-stdint.c > /opt/src/gnu/m4-1.4.10/tests/test-stdint.c:309: negative width in > bit-field `verify_error_if_negative_size__' > /opt/src/gnu/m4-1.4.10/tests/test-stdint.c:310: negative width in > bit-field `verify_error_if_negative_size__' > gmake[4]: *** [test-stdint.o] Error 1 > ..... > > If you have any ideas how to fix the test-vasprintf-posix failure on > the UnixWare 7.1.1 box, I'd love to hear them. > > Thanks. > - -- Don't work too hard, make some time for fun as well! Eric Blake [EMAIL PROTECTED] -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Cygwin) Comment: Public key at home.comcast.net/~ericblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHJUxI84KuGfSFAYARAiMUAKCMIXln6iJgdZhXOMIlwjy/Is9sbgCgyzUP 9V3AUhJgn4UVxnLzuxDYAzY= =iSX1 -----END PGP SIGNATURE-----