[Top][All Lists]

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

__attribute__ ((__format__)) in error.h [was: m4-1.4.7 build feedback]

From: Eric Blake
Subject: __attribute__ ((__format__)) in error.h [was: m4-1.4.7 build feedback]
Date: Tue, 26 Sep 2006 20:34:56 -0600
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: Gecko/20060909 Thunderbird/ Mnenhy/

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 c89 version:     gcc (GCC) 4.1.1 20060525 (Red Hat 4.1.1-1)
> Remote suncc version:   cc: Sun C 5.9 Linux_i386 Build27_2 2006/08/02
> Configure environment:  CC=/opt/sun/sunstudiomars/bin/sunc89 
> CFLAGS=-I/usr/local/include CXX=/opt/sun/sunstudiomars/bin/sunCC 
> CXXFLAGS=-I/usr/local/include LDFLAGS="-R/usr/local/lib -L/usr/local/lib"
> /opt/sun/sunstudiomars/bin/sunc89 -DHAVE_CONFIG_H -I. -I. -I..     
> -I/usr/local/include -c verror.c
> "verror.h", line 36: warning: attribute parameter "printf" is undefined
> "verror.h", line 48: warning: attribute parameter "printf" is undefined
> "/usr/include/stdlib.h", line 712: syntax error before or at: _Pragma
> c89: acomp failed for verror.c
> make[3]: Leaving directory `/local/build/sunc89/m4-1.4.7/lib'

Well, the glibc check for which styles of __attribute__ are supported
seems to be a bit weak; obviously this compiler isn't truly GNU compatible.

> This build is with the new free Sun compilers ported from GNU/Linux to
> Solaris.  Here is some information from a posting that I made to
> another mailing list on 15-Sep-2006:
>>> ...
>>>     More details can be found here:
>>>         http://developers.sun.com/prodtech/cc/downloads/express.jsp
>>>         http://developers.sun.com/prodtech/cc/downloads/express_readme.html
>>> PS-1:   The only personal information required to download the compilers is
>>>         your email address.
>>> PS-2:   A word of warning for installers and systems managers: in
>>>         previous releases, the Sun compiler suite on GNU/Linux
>>>         unbundled into /opt/sun only.
>>>         In this new release, it also creates two other trees: /db and
>>>         /usr/OpenMotif-2.1.31.  Neither exists in standard GNU/Linux
>>>         installations, so there is no conflict with existing files.
>>>         I had to manually propagate those two extra directories to our
>>>         many client machines that otherwise get /opt and /usr/local
>>>         mirrored nightly from master servers.
>>>         Here are the disk space requirements:
>>>                 % du -skh /opt/sun /db /usr/OpenMotif-2.1.31/
>>>                 1001M   /opt/sun
>>>                 4.3M    /db
>>>                 20M     /usr/OpenMotif-2.1.31/
>>> PS-3:   For some reason, the compiler manual pages are not included in
>>>         the GNU/Linux distribution, but they can be found online at
>>> http://developers.sun.com/prodtech/cc/documentation/ss11/index.html
>>> ...
> /opt/sun/sunstudiomars/bin/sunc89 -DHAVE_CONFIG_H -I. -I. -I..     
> -I/usr/local/include -c verror.c
> "verror.h", line 36: warning: attribute parameter "printf" is undefined
> "verror.h", line 48: warning: attribute parameter "printf" is undefined
> "/usr/include/stdlib.h", line 712: syntax error before or at: _Pragma
> c89: acomp failed for verror.c

Still, the fact that it is only complaining about verror.h, and not
error.h, makes me wonder if something in <stdarg.h> is causing us grief.
What happens if you rearrange the order of the 2 #includes in verror.h?

> m4-1.4.7 compiles without problems with suncc and sunc99, and passes
> its validation tests.
> Nothing needs to be done here, but I thought is useful to report the
> availability of these free compilers, because they have two decades of
> development behind them on SPARC, and have proved highly reliable.
> The IA-32 and AMD64 code generators are relatively new, and the most
> recent release for GNU/Linux has these improvements from the same
> posting cited above:
>>> ...
>>> In addition to the support for more platforms, the compilers now
>>> recognize several gcc-specific features, including -m32 and -m64 to
>>> set the memory-addressing model, -xMD, -xMF, and -xMMD to generate
>>> Makefile dependencies, #include_next, and the __attributes__
>>> qualifier.  The compilers now have aliases with the prefix "sun":
>>> suncc, sunCC, sunf90, sunf77, sunf95, sunc89, sunc99, and sunas,
>>> making it easy for them to coexist in the standard search path without
>>> shadowing the vendor-provided compilers in /usr/bin.
>>> These changes should make the Sun compilers work much better in a
>>> GNU/Linux environment, and I have been routinely using them in
>>> software builds in several different compilation environments on
>>> GNU/Linux systems on IA-32 and AMD64 CPUs, using the automated build
>>> tool described in Chapter 8 of our book ``Classic Shell Scripting'':
>>>         http://www.math.utah.edu/~beebe/books/css
>>> If GNU/Linux compatibility support is installed on FreeBSD, NetBSD,
>>> and OpenBSD systems (see "man compat_linux" on those system for
>>> details), it should be possible to run the Sun compilers on those
>>> operating systems as well.  While I plan to make such experiments,
>>> I have yet to do.
>>> If a similar compatibility layer ever gets added to Apple Mac OS X on
>>> their new Intel-based products, then those systems as well may be able
>>> to run the Sun compilers in the future.
>>> ...

- --
Life is short - so eat dessert first!

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


reply via email to

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