Subject: Re: port-sparc64/32142: compile error in /usr/src/usr.bin/cap_mkdb/cap_mkdb.c
To: None <christos@netbsd.org, gnats-admin@netbsd.org,>
From: Dave Tyson <Dave.Tyson@liverpool.ac.uk>
List: netbsd-bugs
Date: 11/22/2005 16:56:02
The following reply was made to PR bin/32142; it has been noted by GNATS.

From: Dave Tyson <Dave.Tyson@liverpool.ac.uk>
To: gnats-bugs@netbsd.org
Cc: port-sparc64-maintainer@netbsd.org, johan@ewranglers.com
Subject: Re: port-sparc64/32142: compile error in /usr/src/usr.bin/cap_mkdb/cap_mkdb.c
Date: Tue, 22 Nov 2005 16:16:16 +0000

 On Tuesday 22 November 2005 15:37, johan@ewranglers.com wrote:
 > >Number:         32142
 > >Category:       port-sparc64
 > >Synopsis:       compile error in /usr/src/usr.bin/cap_mkdb/cap_mkdb.c
 > >Confidential:   no
 > >Severity:       critical
 > >Priority:       high
 > >Responsible:    port-sparc64-maintainer
 > >State:          open
 > >Class:          sw-bug
 > >Submitter-Id:   net
 > >Arrival-Date:   Tue Nov 22 15:37:00 +0000 2005
 > >Originator:     Johan A. van Zanten
 > >Release:        NetBSD 2.0.2_STABLE
 > >Organization:
 >
 > dis-
 >
 > >Environment:
 >
 > System: NetBSD sarasvati 2.0.2_STABLE NetBSD 2.0.2_STABLE (PARATHA) #1: Sun
 > Apr 17 18:26:19 CDT 2005
 > johan@sarasvati:/local/NetBSD/src/NetBSD-2.0/src/sys/arch/alpha/compile/obj
 >.alpha/PARATHA alpha
 >
 > brahma:/usr/src/usr.bin/cap_mkdb $ ident cap_mkdb.c
 > cap_mkdb.c:
 >      $NetBSD: cap_mkdb.c,v 1.20.4.2 2005/11/14 22:00:54 riz Exp $
 >      $NetBSD: cap_mkdb.c,v 1.20.4.2 2005/11/14 22:00:54 riz Exp $
 >
 > Architecture: sparc64
 > Machine: sparc64
 >
 > >Description:
 >
 > 	I'm building netbsd-2 for sparc64 on an Alpha running
 > 	 NetBSD 2.0.2_STABLE.
 >
 > output from "./build.sh -m sparc64 -U -T /local/NetBSD/tools build":
 >
 >
 > /local/NetBSD/tools/bin/sparc64--netbsd-gcc -Wl,-nostdlib     -o calendar 
 > -Wl,-rpath-link,/local/NetBSD/src/NetBSD-2.0/src/obj.sparc64/destdir.sparc6
 >4/lib:/local/NetBSD/src/NetBSD-2.0/src/obj.sparc64/destdir.sparc64/usr/lib 
 > -L/local/NetBSD/src/NetBSD-2.0/src/obj.sparc64/destdir.sparc64/lib 
 > -B/local/NetBSD/src/NetBSD-2.0/src/obj.sparc64/destdir.sparc64/usr/lib/
 > -B/local/NetBSD/src/NetBSD-2.0/src/obj.sparc64/destdir.sparc64/usr/lib/  
 > calendar.o  
 > -L/local/NetBSD/src/NetBSD-2.0/src/obj.sparc64/destdir.sparc64/usr/lib
 > -L/local/NetBSD/src/NetBSD-2.0/src/obj.sparc64/destdir.sparc64/usr/lib #   
 > format  calendar/calendar.cat1
 > PATH=/local/NetBSD/tools/lib/groff:${PATH} /local/NetBSD/tools/bin/nbnroff
 > -mandoc /local/NetBSD/src/NetBSD-2.0/src/usr.bin/calendar/calendar.1   >
 > calendar.cat1.tmp && mv calendar.cat1.tmp calendar.cat1 dependall ===>
 > usr.bin/cap_mkdb
 > #    create  cap_mkdb/cap_mkdb.d
 > CC=/local/NetBSD/tools/bin/sparc64--netbsd-gcc
 > /local/NetBSD/tools/bin/nbmkdep -f cap_mkdb.d --       -nostdinc -isystem
 > /local/NetBSD/src/NetBSD-2.0/src/obj.sparc64/destdir.sparc64/usr/include  
 > /local/NetBSD/src/NetBSD-2.0/src/usr.bin/cap_mkdb/cap_mkdb.c #    create 
 > cap_mkdb/.depend
 > rm -f .depend
 > CC=/local/NetBSD/tools/bin/sparc64--netbsd-gcc
 > /local/NetBSD/tools/bin/nbmkdep -d -f .depend -s .o\ .ln cap_mkdb.d rm -f
 > .gdbinit
 > echo "set solib-absolute-prefix
 > /local/NetBSD/src/NetBSD-2.0/src/obj.sparc64/destdir.sparc64" > .gdbinit # 
 >  compile  cap_mkdb/cap_mkdb.o
 > /local/NetBSD/tools/bin/sparc64--netbsd-gcc -O2  -Wall -Wstrict-prototypes
 > -Wmissing-prototypes -Wpointer-arith -Wno-sign-compare -Wno-traditional
 > -Wno-uninitialized  -Werror -O2 -mcpu=ultrasparc   -nostdinc -isystem
 > /local/NetBSD/src/NetBSD-2.0/src/obj.sparc64/destdir.sparc64/usr/include 
 > -c    /local/NetBSD/src/NetBSD-2.0/src/usr.bin/cap_mkdb/cap_mkdb.c
 > /local/NetBSD/src/NetBSD-2.0/src/usr.bin/cap_mkdb/cap_mkdb.c: In function
 > `db_build':
 > /local/NetBSD/src/NetBSD-2.0/src/usr.bin/cap_mkdb/cap_mkdb.c:180: warning:
 > passing arg 2 of `cgetnext' from incompatible pointer type
 >
 > *** Failed target:  cap_mkdb.o
 > *** Failed command: /local/NetBSD/tools/bin/sparc64--netbsd-gcc -O2 -Wall
 > -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-sign-compare
 > -Wno-traditional -Wno-uninitialized -Werror -O2 -mcpu=ultrasparc -nostdinc
 > -isystem
 > /local/NetBSD/src/NetBSD-2.0/src/obj.sparc64/destdir.sparc64/usr/include -c
 > /local/NetBSD/src/NetBSD-2.0/src/usr.bin/cap_mkdb/cap_mkdb.c *** Error code
 > 1
 >
 > Stop.
 > nbmake: stopped in /local/NetBSD/src/NetBSD-2.0/src/usr.bin/cap_mkdb
 >
 > *** Failed target:  dependall
 > *** Failed command: cd /local/NetBSD/src/NetBSD-2.0/src/usr.bin/cap_mkdb;
 > /local/NetBSD/tools/bin/nbmake realall *** Error code 1
 >
 > Stop.
 > nbmake: stopped in /local/NetBSD/src/NetBSD-2.0/src/usr.bin/cap_mkdb
 >
 > *** Failed target:  dependall-cap_mkdb
 > *** Failed command: targ=dependall;dir=cap_mkdb; case "$dir" in /*) echo
 > "$targ ===> $dir"; cd "$dir"; /local/NetBSD/tools/bin/nbmake
 > "_THISDIR_=$dir/" $targ; ;; *) echo "$targ ===> usr.bin/$dir"; cd
 > "/local/NetBSD/src/NetBSD-2.0/src/usr.bin/$dir";
 > /local/NetBSD/tools/bin/nbmake "_THISDIR_=usr.bin/$dir/" $targ; ;; esac ***
 > Error code 1
 >
 > Stop.
 > nbmake: stopped in /local/NetBSD/src/NetBSD-2.0/src/usr.bin
 >
 > *** Failed target:  dependall-usr.bin
 > *** Failed command: targ=dependall;dir=usr.bin; case "$dir" in /*) echo
 > "$targ ===> $dir"; cd "$dir"; /local/NetBSD/tools/bin/nbmake
 > "_THISDIR_=$dir/" $targ; ;; *) echo "$targ ===> $dir"; cd
 > "/local/NetBSD/src/NetBSD-2.0/src/$dir"; /local/NetBSD/tools/bin/nbmake
 > "_THISDIR_=$dir/" $targ; ;; esac *** Error code 1
 >
 > Stop.
 > nbmake: stopped in /local/NetBSD/src/NetBSD-2.0/src
 >
 > *** Failed target:  do-build
 > *** Failed command: (cd /local/NetBSD/src/NetBSD-2.0/src &&
 > /local/NetBSD/tools/bin/nbmake dependall BUILD_tools=no BUILD_lib=no) ***
 > Error code 1
 >
 > Stop.
 > nbmake: stopped in /local/NetBSD/src/NetBSD-2.0/src
 >
 > *** Failed target:  build
 > *** Failed command: (cd /local/NetBSD/src/NetBSD-2.0/src &&
 > /local/NetBSD/tools/bin/nbmake do-build) *** Error code 1
 >
 > Stop.
 > nbmake: stopped in /local/NetBSD/src/NetBSD-2.0/src
 >
 > ERROR: Failed to make build
 > *** BUILD ABORTED ***
 >
 >
 >
 > #/etc/mk.conf
 > #
 > CPUFLAGS+=-O2
 > . if ${MACHINE} == sparc
 > CPUFLAGS+=-mv8
 > . elif ${MACHINE} == alpha
 > CPUFLAGS+=-mcpu=ev6
 > . elif ${MACHINE} == i386
 > CPUFLAGS+=
 > . elif ${MACHINE} == sparc64
 > CPUFLAGS+=-mcpu=ultrasparc
 > .endif
 >
 >
 > #RELEASEDIR=
 > #
 > MKDOC=no
 > MKINFO=no
 > MKNLS=no
 > MKMAN=yes
 >
 > #TOOLDIR=/local/NetBSD/tools
 > # use machine-specific object directories, e.g.  work.i386, work.sparc
 > # Possible: defined, not defined
 > OBJMACHINE=yes
 >
 > ###
 > ### Things usually controlled from the ./build.sh command line
 > #MKUNPRIVED=yes
 > #MKUPDATE=yes
 > #MKOBJ=yes
 > #MKCATPAGES=no
 > #SUBDIR=share
 >
 > ######################################################################
 > ###
 > ### Configuration options for building Package stuff
 > ###
 > PACKAGES=		${_PKGSRCDIR}/packages/${OS_VERSION}/${LOWER_ARCH}
 >
 > .ifdef BSD_PKG_MK
 > CFLAGS+=-O2
 > . if ${MACHINE} == sparc
 > COPTS+=-mv8
 > . elif ${MACHINE} == alpha
 > COPTS+=-mcpu=ev6
 > . elif ${MACHINE} == sparc64
 > CPUFLAGS+=-mcpu=ultrasparc
 > . endif
 > . endif
 >
 > # build here instead of in pkgsrc
 > # Possible: any path
 > # Default: not defined
 > WRKOBJDIR=	/local/NetBSD/pkg-build
 > ##
 > ## Package Licensing variables.
 > ##
 > # Whitespace-delimited list of the types of license which are
 > # acceptable for installation.  (apart from standard "free" licenses
 > # such as Berkeley/CMU and GPL).  Possible values are presented below.
 > #ACCEPTABLE_LICENSES=	limited-redistribution
 > ACCEPTABLE_LICENSES=	fee-based-commercial-use no-commercial-use \
 >  			no-profit limited-redistribution shareware
 >
 > ACCEPTABLE_LICENSES+=	adobe-acrobat-license
 > ACCEPTABLE_LICENSES+=	mosaic-license
 > ACCEPTABLE_LICENSES+=	opera-license
 > ACCEPTABLE_LICENSES+=	pine-license
 > ACCEPTABLE_LICENSES+=   kermit-license
 > ACCEPTABLE_LICENSES+=	majordomo-license
 >
 > ###
 > # Don't use the default of all packages (from the top-level of the
 > # pkgsrc tree), and use the values of the definitions
 > # SITE_SPECIFIC_PKGS, HOST_SPECIFIC_PKGS, GROUP_SPECIFIC_PKGS, and
 > # USER_SPECIFIC_PKGS.
 > # Possible: defined, not defined
 > # Default: not defined
 > SPECIFIC_PKGS=
 >
 > ###
 > # List of packages that are wanted for each host on the site.  Each
 > # package in the list is of the form <category>/<package>.
 > # Possible: any combination of packages
 > # Default: not set
 >
 > SITE_SPECIFIC_PKGS= devel/gmake devel/libtool \
 > pkgtools/digest shells/bash2 shells/bash2-doc \
 > mail/postfix security/gnupg security/mit-krb5 sysutils/lsof
 >
 > ###
 > # List of packages that are wanted for this particular host/machine.
 > # Each package in the list is of the form <category>/<package>.
 > # Possible: any combination of packages
 > # Default: not set
 >
 > HOST_SPECIFIC_PKGS= pkgtools/autoswc \
 >   pkgtools/pkgfind pkgtools/pkgsurvey \
 >   www/apache2 net/bounce mail/imap-uw  comms/minicom textproc/expat \
 >   lang/perl5 \
 >   devel/p5-Compress-Zlib security/p5-Crypt-Blowfish security/p5-Crypt-CBC\
 >   security/p5-Crypt-DES security/p5-Digest-HMAC security/p5-Digest-MD5 \
 >   security/p5-Digest-SHA1 www/p5-HTML-Parser www/p5-HTML-Tagset \
 >   security/p5-IO-Socket-SSL converters/p5-MIME-Base64 net/p5-Net \
 >   net/p5-Net-DNS devel/p5-Net-Netmask security/p5-Net-SSLeay \
 >   devel/p5-TimeDate www/p5-URI \
 >   textproc/p5-XML-Parser www/p5-libwww \
 >   editors/pico mail/pine mail/procmail archivers/unzip devel/autoconf \
 >   devel/automake14 editors/emacs graphics/gif2png graphics/jpeg  \
 >   graphics/libungif graphics/netpbm graphics/png graphics/xpm  \
 >   math/sc mail/nmh net/jwhois net/ncftp3 net/netatalk net/nmap net/wget  \
 >   shells/tcsh textproc/ispell-base textproc/ispell-emacs www/lynx
 >
 > ##
 > ## End package Licensing variables
 > ##
 >
 > SU_CMD?= ksu -e /bin/sh -c
 >
 >
 > APACHE_PERF_TUNING=	YES
 >
 > BASH_STATIC=		YES
 > EMACS_USE_X=		YES
 > KERBEROS=		YES
 > KRB5_TYPE=		mit-krb5
 > #PKG_USE_KERBEROS=	YES
 > KRB5_ACCEPTED=		mit-krb5
 > KRB5_DEFAULT=		mit-krb5
 >
 > NMH_EDITOR?=		emacs
 > SASL_USE_GSSAPI=	YES
 > PVM_SSH?=		/usr/pkg/bin/rsh -x
 > JWHOIS_ENABLE_CACHE=	YES
 > KERMIT_SUID_UUCP=	YES
 >
 > #USE_SASL2=YES
 > #PKG_DEFAULT_OPTIONS+=sasl
 > PKG_OPTIONS.postfix+=sasl tls
 > PKG_OPTIONS.freeciv-client= x11
 > ###
 > ### End of config options for Packages
 > ###
 >
 > >How-To-Repeat:
 >
 > 	./build.sh -m sparc64 -U -T /local/NetBSD/tools build
 >
 > >Fix:
 >
 > 	unknown to me.
 
 I found the same problem with 2.1_STABLE on i386 and sparc. It looks
 like a recent pullup to cap_mkdb.c is out of step with the declarations in
 /usr/include.
 
 "This looks like an issue with the call to cgetnext on line 180 with ifiles
 (declared as const char **)  vs the declaration of cgetnext in stdlib ( int
 cgetnext __P((char **, char **));"
 
 I fixed it temporarily with a simple cast. I guess the real fix its to pull 
 the updated stdlib.h with the const updates to the netbsd-2 branches assuming 
 there will be no other collateral damage.
 
 Dave
 
 
 -- 
 =====================================================================
 Computing Services Dept         Phone/Fax: 0151-794-3731/3759
 The University of Liverpool     Email: dtyson@liv.ac.uk
 Chadwick Tower, Peach Street    WWW:   http://www.liv.ac.uk/~dtyson
 Liverpool L69 7ZF               Open Source O/S: www.netbsd.org
 =====================================================================