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