Re: Depending on C99 (Re: GtkBindingSignal changes)
- From: Albert Chin <gtk-devel-list mlists thewrittenword com>
- To: gtk-devel-list gnome org
- Subject: Re: Depending on C99 (Re: GtkBindingSignal changes)
- Date: Thu, 26 Jan 2006 18:48:25 -0600
On Thu, Jan 05, 2006 at 09:52:40PM -0500, Owen Taylor wrote:
>
> In terms of the impact on people compiling GTK+, I'd be interested
> in hearing from the people at "The Written Word", who compile GTK+
> across a pretty big range of older platforms; is Albert Chin
> listening?
Ok, here's a survey. We're using the latest vendor C compiler in all
cases except for newer versions of Solaris/AIX but I doubt that makes
a difference here:
$ cat c99.c
struct header {
int len;
unsigned char data[];
};
Solaris 2.6 (Sun WorkShop 6 update 2 C 5.3 Patch 111679-14 2004/02/20)
$ cc -c c99.c
"c99.c", line 3: null dimension: data
cc: acomp failed for c99.c
[C99 not supported in the compiler or C library]
Solaris 7 (Sun C 5.5 Patch 112760-18 2005/06/14)
$ cc -xc99=no%lib -c c99.c
$ cc -xc99=all -c c99.c
-xc99=lib is not available on SunOS 5.7
[C99 support in the compiler but not in the C library]
Solaris 8 (Sun C 5.5 Patch 112760-18 2005/06/14)
$ cc -xc99=no%lib -c c99.c
$ cc -xc99=all -c c99.c
-xc99=lib is not available on SunOS 5.8
[C99 support in the compiler but not in the C library]
Solaris 9 (Sun C 5.5 Patch 112760-18 2005/06/14)
$ cc -xc99=no%lib -c c99.c
$ cc -xc99=all -c c99.c
-xc99=lib is not available on SunOS 5.9
[C99 support in the compiler but not in the C library]
Solaris 10 (Sun C 5.7 Patch 117836-05 2005/10/05)
$ cc -xc99=no%lib -c c99.c
$ cc -xc99=all -c c99.c
[C99 support in the compiler and C library]
HP-UX 10.20 (HP92453-01 A.10.32.30 HP C Compiler)
HP-UX 11.00 (HP92453-01 B.11.X.32509-32512.GP HP C Compiler)
HP-UX 11.11 (HP92453-01 B.11.11.14 HP C Compiler)
$ cc -AC99 -c c99.c
cc: "c99.c", line 3: error 1578: Size of struct or union member is unknown.
[C99 not supported in the compiler or C library]
HP-UX 11.23/PA (HP92453-01 B.11.11.14 HP C Compiler)
$ cc -AC99 -c c99.c
cc: "c99.c", line 3: error 1578: Size of struct or union member is unknown.
<Odd. The OS has C99 support but I don't know why the C
compiler isn't accepting -AC99 when it's documented in cc(1).
Will need to investigate.>
[C99 not supported in the compiler but supported in the C library]
HP-UX 11.23/IA (HP aC++/C for Integrity Servers B3910B A.06.06)
$ cc -AC99 -c c99.c
<From http://docs.hp.com/en/5990-6737/index.html:
C99 Support for HP-UX System C Library (libc)>
[C99 support in the compiler and C library]
AIX 4.3.3 (C for AIX Compiler 6.0.0.10)
AIX 5.1 (IBM XL C Compiler 7.0.0.4)
$ xlc -qlanglvl=stdc99 -c c99.c
[C99 support in the compiler. C99 library support seems to
have started with AIX 5.2]
AIX 5.2 (IBM XL C Compiler 7.0.0.4)
$ xlc -qlanglvl=stdc99 -c c99.c
<From http://www16.boulder.ibm.com/pseries/en_US/infocenter/base/52_base_relnotes.htm#wq95:>
C99 Language Interfaces
AIX 5L Version 5.2 system libraries and headers include interfaces
required by the ISO/IEC 9899:1999(E) (C99) language standard and the
Single UNIX(R) Specification, Version 3. Some of the interfaces may
have the same names as symbols in existing programs. The interfaces
may be hidden by specifying the -D_NOISOC99_SOURCE when you are
compiling.>
[C99 support in the compiler and C library]
AIX 5.3 (IBM XL C Compiler 7.0.0.4)
$ xlc -qlanglvl=stdc99 -c c99.c
<From http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.resources/53relnotes.htm:
C99 Language Interfaces
AIX 5L Version 5.3 system libraries and headers include
interfaces required by the ISO/IEC 9899:1999(E) (C99)
language standard and the Single UNIX Specification, Version
3. Some of the interfaces may have the same names as symbols
in existing programs. The interfaces may be hidden by specifying
the -D_NOISOC99_SOURCE when you are compiling.>
[C99 support in the compiler and C library]
Tru64 UNIX 4.0D (Compaq C V6.5-207 (dtk))
Tru64 UNIX 5.1 (Compaq C V6.5-303 (dtk))
$ cc -c99 -c c99.c
<From
ftp://ftp.compaq.com/pub/products/c-cxx/tru64/dtk/dtk51b/DTC650_RN.txt:
This new Developers' Toolkit (dtk) compiler provides:
...
o new features from the C99 standard including restricted pointers,
variable length arrays, interspersed declarations and statements,
initializers with designators, compound literals, macros with
a variable number of arguments, _Pragma preprocessing operator,
__func__ predefined identifier, hexadecimal floating-point
literals, and complex data types (on V5.1A and later systems).
[C99 support in the compiler but not in the C library unless
running 5.1A and above]
IRIX 6.5.26m (MIPSpro Compilers: Version 7.4.4m)
$ cc -c99 -c c99.c
<From http://www.sgi.com/products/software/irix/tools/c.html:
MIPSpro ANSI C Compiler
Now Supports ISO/IEC c99 Standard
As of the 7.4 release of the MIPSpro C Compiler, the C compiler
supports the c99 standard when invoked with the -c99 flag or
when the c99 command is used.
...
In addition, new functions for wide-character support and new
format modifiers for printf() are provided in the C Standard
library (libc) in IRIX® 6.5.18.>
[C99 support in the compiler and C library but only for
newer versions of the compiler and OS]
Thanks to Andrew Paprocki for the Solaris/AIX notes, compiler options.
c99.c isn't enough to really justify C99 support in the compiler but
it's probably good enough for this test.
--
albert chin (china thewrittenword com)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]