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
=====================================================================