bug-m4
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

fpending issues on LSB [was: m4-1.4.7 build feedback]


From: Eric Blake
Subject: fpending issues on LSB [was: m4-1.4.7 build feedback]
Date: Tue, 26 Sep 2006 20:29:42 -0600
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.7) Gecko/20060909 Thunderbird/1.5.0.7 Mnenhy/0.7.4.666

-----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             address@hidden
-----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-----




reply via email to

[Prev in Thread] Current Thread [Next in Thread]