gnupg-1.4.2rc1 build feedback: standards conformance
Nelson H. F. Beebe
beebe at math.utah.edu
Tue May 31 18:38:14 CEST 2005
For several years, Sun Solaris has had a section in "man 5 standards"
on the conformance to various language and O/S interface standards.
At Solaris 10, there are 13 separate specifications, but until
recently, I've not had the machine resources to do builds in each one
of them. That situation changed last week, and I've just done that
for the gnupg-1.4.2rc1 test release. The more conformant that
software is to standards, the more likely it is to be easily ported to
new platforms.
Here is a snippet of the end of "man 5 standards" on Solaris 10:
>> ...
>> Specification Compiler/Flags Feature Test Macros
>> 1989 ANSI C and 1990 ISO C c89 none
>> 1999 ISO C c99 none
>> SVID3 cc -Xt -xc99=none none
>> POSIX.1-1990 c89 _POSIX_SOURCE
>> POSIX.1-1990 and c89 _POSIX_SOURCE and
>> POSIX.2-1992 POSIX_C_SOURCE=2
>> C-Language
>> Bindings Option
>> POSIX.1b-1993 c89 _POSIX_C_SOURCE=199309L
>> POSIX.1c-1996 c89 _POSIX_C_SOURCE=199506L
>> POSIX.1-2001 c99 _POSIX_C_SOURCE=200112L
>> POSIX.1c-1996 c89 _POSIX_C_SOURCE=199506L
>> CAE XPG3 cc -Xa -xc99=none _XOPEN_SOURCE
>>
>> CAE XPG4 c89 _XOPEN_SOURCE and
>> _XOPEN_VERSION=4
>> SUS (CAE XPG4v2) c89 _XOPEN_SOURCE and
>> (includes XNS4) _XOPEN_SOURCE_EXTENDED=1
>> SUSv2 (includes XNS5) c89 _XOPEN_SOURCE=500
>> SUSv3 c99 _XOPEN_SOURCE=600
>>
>> For platforms supporting the LP64 (64-bit) programming environment,
>> SUSv2-conforming LP64 applications using XNS5 library calls should be
>> built with command lines of the form:
>>
>> c89 $(getconf XBS5_LP64_OFF64_CFLAGS) -D_XOPEN_SOURCE=500 \
>> $(getconf XBS5_LP64_OFF64_LDFLAGS) foo.c -o foo \
>> $(getconf XBS5_LP64_OFF64_LIBS) -lxnet
>>
>> Similar SUSv3-conforming LP64 applications should be built with command
>> lines of the form:
>>
>> c99 $(getconf POSIX_V6_LP64_OFF64_CFLAGS) -D_XOPEN_SOURCE=600 \
>> $(getconf POSIX_V6_LP64_OFF64_LDFLAGS) foo.c -o foo \
>> $(getconf POSIX_V6_LP64_OFF64_LIBS) -lxnet
>> ...
Notice that the POSIX.1c-1996 line is duplicated, so there are 13, not
14, levels. To these, I added the two 64-bit flavors, replacing the
getconf calls with their actual returned strings.
Of the 15 builds on Solaris 10 SPARC, seven passed all of the tests,
and eight failed, most from the same cause. There are also several
type mismatch warnings; I summarize them below.
============================================================
Machinetype: Sun Ultra Enterprise 450/400 (4 CPUs, 400 MHz UltraSPARC II, 4GB); Solaris 10
Remote c89 version: cc: Sun C 5.7 Patch 117836-02 2005/03/23
Remote c99 version: cc: Sun C 5.7 Patch 117836-02 2005/03/23
Remote cc version: cc: Sun C 5.7 Patch 117836-02 2005/03/23
Remote CC version: CC: Sun C++ 5.7 Patch 117830-02 2005/03/30
Remote gcc version: gcc (GCC) 3.3
Remote g++ version: g++ (GCC) 3.3
Configure environment: CC=/opt/SUNWspro/bin/c89 CFLAGS="-D_POSIX_SOURCE -I/usr/local/include" CXX=/opt/SUNWspro/bin/CC CXXFLAGS="-I/usr/local/include" LDFLAGS="-R/usr/local/lib -L/usr/local/lib"
/opt/SUNWspro/bin/c89 -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../intl -I/usr/local/include -D_POSIX_SOURCE -I/usr/local/include -c miscutil.c
"miscutil.c", line 255: warning: argument #1 is incompatible with prototype:
prototype: pointer to const char : "../include/util.h", line 193
argument : pointer to const unsigned char
/opt/SUNWspro/bin/c89 -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../intl -I/usr/local/include -D_POSIX_SOURCE -I/usr/local/include -c strgutil.c
"strgutil.c", line 291: warning: assignment type mismatch:
pointer to const unsigned char "=" pointer to const char
"strgutil.c", line 291: warning: assignment type mismatch:
pointer to const unsigned char "=" pointer to const char
"strgutil.c", line 293: warning: assignment type mismatch:
pointer to const char "=" pointer to const unsigned char
"strgutil.c", line 298: warning: assignment type mismatch:
pointer to const unsigned char "=" pointer to const char
"strgutil.c", line 298: warning: assignment type mismatch:
pointer to const unsigned char "=" pointer to const char
"strgutil.c", line 310: warning: assignment type mismatch:
pointer to const unsigned char "=" pointer to const char
"strgutil.c", line 310: warning: assignment type mismatch:
pointer to const unsigned char "=" pointer to const char
"strgutil.c", line 312: warning: assignment type mismatch:
pointer to const char "=" pointer to const unsigned char
"strgutil.c", line 317: warning: assignment type mismatch:
pointer to const unsigned char "=" pointer to const char
"strgutil.c", line 317: warning: assignment type mismatch:
pointer to const unsigned char "=" pointer to const char
"strgutil.c", line 685: warning: assignment type mismatch:
pointer to const unsigned char "=" pointer to const char
"strgutil.c", line 692: warning: assignment type mismatch:
pointer to unsigned char "=" pointer to char
"strgutil.c", line 692: warning: assignment type mismatch:
pointer to const unsigned char "=" pointer to const char
"strgutil.c", line 719: warning: assignment type mismatch:
pointer to const unsigned char "=" pointer to const char
"strgutil.c", line 808: warning: assignment type mismatch:
pointer to const unsigned char "=" pointer to const char
"strgutil.c", line 813: warning: argument #1 is incompatible with prototype:
prototype: pointer to char : "/usr/include/iso/stdio_iso.h", line 210
argument : pointer to unsigned char
"strgutil.c", line 839: warning: argument #1 is incompatible with prototype:
prototype: pointer to char : "/usr/include/iso/stdio_iso.h", line 210
argument : pointer to unsigned char
"strgutil.c", line 882: warning: argument #1 is incompatible with prototype:
prototype: pointer to char : "/usr/include/iso/stdio_iso.h", line 210
argument : pointer to unsigned char
"strgutil.c", line 892: warning: argument #1 is incompatible with prototype:
prototype: pointer to char : "/usr/include/iso/stdio_iso.h", line 210
argument : pointer to unsigned char
"strgutil.c", line 895: warning: argument #1 is incompatible with prototype:
prototype: pointer to char : "/usr/include/iso/stdio_iso.h", line 210
argument : pointer to unsigned char
"strgutil.c", line 952: warning: argument #1 is incompatible with prototype:
prototype: pointer to char : "/usr/include/iso/stdio_iso.h", line 210
argument : pointer to unsigned char
"strgutil.c", line 968: warning: argument #1 is incompatible with prototype:
prototype: pointer to char : "/usr/include/iso/stdio_iso.h", line 210
argument : pointer to unsigned char
"strgutil.c", line 1005: warning: assignment type mismatch:
pointer to const char "=" pointer to unsigned char
"strgutil.c", line 1040: warning: return value type mismatch
source='ttyio.c' object='ttyio.o' libtool=no \
DEPDIR=.deps depmode=none /bin/bash ../scripts/depcomp \
/opt/SUNWspro/bin/c89 -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../intl -I/usr/local/include -D_POSIX_SOURCE -I/usr/local/include -c ttyio.c
"ttyio.c", line 105: warning: improper pointer/integer combination: op "="
"ttyio.c", line 354: warning: argument #1 is incompatible with prototype:
prototype: pointer to const char : "../include/util.h", line 193
argument : pointer to const unsigned char
/opt/SUNWspro/bin/c89 -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../intl -I/usr/local/include -D_POSIX_SOURCE -I/usr/local/include -c memory.c
argparse.c", line 869: warning: argument #1 is incompatible with prototype:
prototype: pointer to const char : "/usr/include/iso/stdio_iso.h", line 222
argument : pointer to const unsigned char
/opt/SUNWspro/bin/c89 -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../intl -I/usr/local/include -D_POSIX_SOURCE -I/usr/local/include -c iobuf.c
"iobuf.c", line 630: warning: assignment type mismatch:
pointer to char "=" pointer to unsigned char
"iobuf.c", line 709: warning: argument #2 is incompatible with prototype:
prototype: pointer to unsigned char : "../include/iobuf.h", line 115
argument : pointer to char
"iobuf.c", line 740: warning: assignment type mismatch:
pointer to char "=" pointer to unsigned char
"iobuf.c", line 755: warning: argument #2 is incompatible with prototype:
prototype: pointer to unsigned char : "../include/iobuf.h", line 120
argument : pointer to char
"iobuf.c", line 762: warning: argument #2 is incompatible with prototype:
prototype: pointer to unsigned char : "../include/iobuf.h", line 120
argument : pointer to char
"iobuf.c", line 828: warning: argument #2 is incompatible with prototype:
prototype: pointer to unsigned char : "../include/iobuf.h", line 120
argument : pointer to char
"iobuf.c", line 1592: warning: assignment type mismatch:
pointer to unsigned char "=" pointer to char
"iobuf.c", line 2079: warning: assignment type mismatch:
pointer to char "=" pointer to unsigned char
"iobuf.c", line 2088: warning: assignment type mismatch:
pointer to unsigned char "=" pointer to char
"iobuf.c", line 2108: warning: assignment type mismatch:
pointer to unsigned char "=" pointer to char
/opt/SUNWspro/bin/c89 -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../intl -I/usr/local/include -D_POSIX_SOURCE -I/usr/local/include -c dotlock.c
"dotlock.c", line 328: incomplete struct/union/enum timeval: tv
"dotlock.c", line 334: undefined struct/union member: tv_sec
"dotlock.c", line 335: undefined struct/union member: tv_usec
c89: acomp failed for dotlock.c
============================================================
Configure environment: CC=/opt/SUNWspro/bin/c89 CFLAGS="-D_POSIX_SOURCE -D_POSIX_C_SOURCE=2 -I/usr/local/include" CXX=/opt/SUNWspro/bin/CC CXXFLAGS="-I/usr/local/include" LDFLAGS="-R/usr/local/lib -L/usr/local/lib"
/opt/SUNWspro/bin/c89 -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../intl -I/usr/local/include -D_POSIX_SOURCE -D_POSIX_C_SOURCE=2 -I/usr/local/include -c dotlock.c
"dotlock.c", line 328: incomplete struct/union/enum timeval: tv
============================================================
Configure environment: CC=/opt/SUNWspro/bin/c89 CFLAGS="-D_POSIX_C_SOURCE=199309L -I/usr/local/include" CXX=/opt/SUNWspro/bin/CC CXXFLAGS="-I/usr/local/include" LDFLAGS="-R/usr/local/lib -L/usr/local/lib"
/opt/SUNWspro/bin/c89 -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../intl -I/usr/local/include -D_POSIX_C_SOURCE=199309L -I/usr/local/include -c dotlock.c
2108: warning: assignment type mismatch:
pointer to unsigned char "=" pointer to char
"dotlock.c", line 328: incomplete struct/union/enum timeval: tv
"dotlock.c", line 334: improper member use: tv_sec
"dotlock.c", line 335: undefined struct/union member: tv_usec
c89: acomp failed for dotlock.c
============================================================
Configure environment: CC=/opt/SUNWspro/bin/c89 CFLAGS="-D_POSIX_C_SOURCE=199506L -I/usr/local/include" CXX=/opt/SUNWspro/bin/CC CXXFLAGS="-I/usr/local/include" LDFLAGS="-R/usr/local/lib -L/usr/local/lib"
/opt/SUNWspro/bin/c89 -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../intl -I/usr/local/include -D_POSIX_C_SOURCE=199506L -I/usr/local/include -c dotlock.c
"dotlock.c", line 328: make[2]: Leaving directory `/local/build/posix.1c-1996/gnupg-1.4.2rc1/util'
============================================================
Configure environment: CC=/opt/SUNWspro/bin/cc CFLAGS="-Xa -xc99=none -D_XOPEN_SOURCE -I/usr/local/include" CXX=/opt/SUNWspro/bin/CC CXXFLAGS="-I/usr/local/include" LDFLAGS="-R/usr/local/lib -L/usr/local/lib"
/opt/SUNWspro/bin/cc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../intl -I/usr/local/include -Xa -xc99=none -D_XOPEN_SOURCE -I/usr/local/include -c dotlock.c
"dotlock.c", line 328: incomplete struct/union/enum timeval: tv
"dotlock.c", line 334: undefined struct/union member: tv_sec
"dotlock.c", line 335: undefined struct/union member: tv_usec
============================================================
Configure environment: CC=/opt/SUNWspro/bin/c89 CFLAGS="-D_XOPEN_SOURCE -D_XOPEN_VERSION=4 -I/usr/local/include" CXX=/opt/SUNWspro/bin/CC CXXFLAGS="-I/usr/local/include" LDFLAGS="-R/usr/local/lib -L/usr/local/lib"
/opt/SUNWspro/bin/c89 -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../intl -I/usr/local/include -D_XOPEN_SOURCE -D_XOPEN_VERSION=4 -I/usr/local/include -c dotlock.c
"dotlock.c", line 328: incomplete struct/union/enum timeval: tv
"dotlock.c", line 334: undefined struct/union member: tv_sec
"dotlock.c", line 335: undefined struct/union member: tv_usec
c89: acomp failed for dotlock.c
============================================================
Configure environment: CC=/opt/SUNWspro/bin/c89 CFLAGS="-xarch=generic64 -D_XOPEN_SOURCE=500 -I/usr/local/include" CXX=/opt/SUNWspro/bin/CC CXXFLAGS="-I/usr/local/include" LDFLAGS="-xarch=generic64 -R/usr/local/lib -L/usr/local/lib"
/opt/SUNWspro/bin/c89 -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -xarch=generic64 -D_XOPEN_SOURCE=500 -I/usr/local/include -c _mpih-add1.s
/opt/SUNWspro/prod/bin/fbe: "_mpih-add1.s", line 59: error: detect global register use not covered .register pseudo-op
/opt/SUNWspro/prod/bin/fbe: "_mpih-add1.s", line 62: error: detect global register use not covered .register pseudo-op
...many more such messages...
============================================================
Configure environment: CC=/opt/SUNWspro/bin/c99 CFLAGS="-xarch=generic64 -D_XOPEN_SOURCE=600 -I/usr/local/include" CXX=/opt/SUNWspro/bin/CC CXXFLAGS="-I/usr/local/include" LDFLAGS="-xarch=generic64 -R/usr/local/lib -L/usr/local/lib"
/opt/SUNWspro/bin/c99 -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -xarch=generic64 -D_XOPEN_SOURCE=600 -I/usr/local/include -c _mpih-add1.s
/opt/SUNWspro/prod/bin/fbe: "_mpih-add1.s", line 59: error: detect global register use not covered .register pseudo-op
/opt/SUNWspro/prod/bin/fbe: "_mpih-add1.s", line 62: error: detect global register use not covered .register pseudo-op
...many more such messages...
-------------------------------------------------------------------------------
- Nelson H. F. Beebe Tel: +1 801 581 5254 -
- University of Utah FAX: +1 801 581 4148 -
- Department of Mathematics, 110 LCB Internet e-mail: beebe at math.utah.edu -
- 155 S 1400 E RM 233 beebe at acm.org beebe at computer.org -
- Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe -
-------------------------------------------------------------------------------
More information about the Gnupg-devel
mailing list