-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 According to Nelson H. F. Beebe on 9/26/2006 8:51 AM: > ======================================================================== > Machinetype: Intel Pentium 4 (2660 MHz); GNU/Linux > 2.6.16-1.2133_FC5 (Fedora Core release 5 (Bordeaux)) > Remote lsbcc version: cc (GCC) 4.1.1 20060525 (Red Hat 4.1.1-1) > Configure environment: CC=/opt/lsb/bin/lsbcc CXX=/opt/lsb/bin/lsbc++ > LDFLAGS="-L/usr/local/lib -Wl,-rpath,/usr/local/lib" FC=gfortran F77=gfortran > > /opt/lsb/bin/lsbcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -c close-stream.c > In file included from __fpending.h:25, > from close-stream.c:27: > /usr/include/stdio_ext.h:47: error: expected `=', `,', `;', `asm' or > `__attribute__' before `extern' > /usr/include/stdio_ext.h: In function `__freading': > ....
That sounds fishy that your own system header isn't being parsed correctly. This may be an LSB bug. Still, it is worth trying to work around it in gnulib. > > Builds of software with the Linux Standards Base compiler, lsbcc, are > of considerable interest, because it makes possible binary portability > across a wide range of GNU/Linux distributions, and even other > operating systems, on the same platform, provided that they support > the LSB API. Because m4 is a core utility on Unix, GNU, and POSIX > systems, it would be highly desirable to be able to build it in the > quite-constrained LSB environment. > > See > > http://www.freestandards.org/en/LSB > > for a description of LSB, and downloads: I used this one > > > http://ftp.freestandards.org/pub/lsb/bundles/released-3.1.0/sdk/lsb-sdk-3.1.0-4.i486.tar.gz > > on the above system. There are further comments about lsb here: > > http://www.math.utah.edu/faq/compilers/compilers.html > > As an experiment, I did a "make clean", then edited config.h to > comment out the definition of HAVE_STDIO_EXT_H. Then I did a "make" > to see whether the build would succeed. It did not, because regex.h > uses size_t in typedef statements before it gets a definition from > <stddef.h>. I fixed that by this simple change: That's another bug in LSB. POSIX requires <sys/types.h> to define size_t: http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/types.h.html#tag_13_67 Maybe it's worth a sys-types-h gnulib module that works around this bug? > > % diff -c regex.h.~1~ regex.h > *** regex.h.~1~ Sat Sep 23 22:28:37 2006 > --- regex.h Tue Sep 26 08:14:23 2006 > *************** > *** 22,27 **** > --- 22,28 ---- > #define _REGEX_H 1 > > #include <sys/types.h> > + #include <stddef.h> > > /* Allow the use in C++ code. */ > #ifdef __cplusplus > > With that single change, a "make clean all check" run succeeded, and > all tests passed. > > This fix seems definitely worthwhile to make in the m4 source code. > - -- Life is short - so eat dessert first! Eric Blake [EMAIL PROTECTED] -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.1 (Cygwin) Comment: Public key at home.comcast.net/~ericblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFFGeIW84KuGfSFAYARAoipAKCIc+dHEeZL/CATe4+E5wN90CDWrACffV4M S2tIu0zQsp8uTu9LAaNYS8w= =Z6Th -----END PGP SIGNATURE-----