From owner-svn-src-all@FreeBSD.ORG Tue Jul 14 09:10:09 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 20F3610656CE; Tue, 14 Jul 2009 09:10:09 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mail.cksoft.de (mail.cksoft.de [195.88.108.3]) by mx1.freebsd.org (Postfix) with ESMTP id 7C4AE8FC0A; Tue, 14 Jul 2009 09:10:08 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from localhost (amavis.fra.cksoft.de [192.168.74.71]) by mail.cksoft.de (Postfix) with ESMTP id 0CC2541C690; Tue, 14 Jul 2009 11:10:07 +0200 (CEST) X-Virus-Scanned: amavisd-new at cksoft.de Received: from mail.cksoft.de ([195.88.108.3]) by localhost (amavis.fra.cksoft.de [192.168.74.71]) (amavisd-new, port 10024) with ESMTP id HlqSPVFeaqw3; Tue, 14 Jul 2009 11:10:06 +0200 (CEST) Received: by mail.cksoft.de (Postfix, from userid 66) id 1622641C6A7; Tue, 14 Jul 2009 11:10:06 +0200 (CEST) Received: from maildrop.int.zabbadoz.net (maildrop.int.zabbadoz.net [10.111.66.10]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.int.zabbadoz.net (Postfix) with ESMTP id 1B5824448E6; Tue, 14 Jul 2009 09:08:17 +0000 (UTC) Date: Tue, 14 Jul 2009 09:08:16 +0000 (UTC) From: "Bjoern A. Zeeb" X-X-Sender: bz@maildrop.int.zabbadoz.net To: Ed Schouten In-Reply-To: Message-ID: <20090714090127.K245@maildrop.int.zabbadoz.net> References: <200907121309.n6CD9iXj085206@svn.freebsd.org> X-OpenPGP-Key: 0x14003F198FEFA3E77207EE8D2B58B8F83CCF1842 MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, FreBSD Release Engineering Team Subject: Re: svn commit: r195637 - head/lib/libc/stdio X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2009 09:10:09 -0000 On Mon, 13 Jul 2009, Navdeep Parhar wrote: > On Sun, Jul 12, 2009 at 6:09 AM, Ed Schouten wrote: >> Author: ed >> Date: Sun Jul 12 13:09:43 2009 >> New Revision: 195637 >> URL: http://svn.freebsd.org/changeset/base/195637 >> >> Log: >> Fix fwrite() to return 0 when size or nmemb are zero. > > Hello Ed, > > This breaks buildworld. This change itself compiles, but once the > system's libc has this fwrite (say, after an installworld), buildworld > on that system will fail. mklocale does not like fwrite returning 0. > And who knows if there are other programs like this out there... > > .... > mklocale -o am_ET.UTF-8.out /usr/src/share/mklocale/am_ET.UTF-8.src > am_ET.UTF-8.out: Inappropriate ioctl for device > *** Error code 1 > Stop in /usr/src/share/mklocale. > .... > > > I've attached a patch to mklocale that will fix the problem. As I hit this last night on a reference machine and someone else did, I did a quick check for fwrite uses; I already removed a bit but not all of the noise: src/ > svngrep -r fwrite . > ../tmp/fwrite.files src/ > cd ../tmp tmp/ > grep -v '(void)fwrite' fwrite.files | grep -v zyd_rfwrite | grep -v cfwrite8 | grep -v bufwrite | grep -v ObsoleteFiles.inc | grep -v bpfwrite | grep -v fread.3 | grep -v Makefile | grep -v Symbol.map: | cut -d: -f1 | sed -e 's,\(.*\)/[^/]*,\1,g' | sort | uniq -c 2 ./bin/ed 2 ./bin/sh 1 ./cddl/contrib/opensolaris/cmd/sgs/tools/common 1 ./contrib/amd/amd 1 ./contrib/amd/fsinfo 5 ./contrib/amd/libamu 1 ./contrib/bc 1 ./contrib/bc/dc 2 ./contrib/bind9/bin/dnssec 3 ./contrib/bind9/lib/dns 1 ./contrib/bind9/lib/isc/unix 8 ./contrib/binutils/bfd 1 ./contrib/binutils/bfd/doc 13 ./contrib/binutils/binutils 1 ./contrib/binutils/gas/config 1 ./contrib/binutils/ld 1 ./contrib/binutils/libiberty 5 ./contrib/bzip2 2 ./contrib/com_err 9 ./contrib/cpio/lib 2 ./contrib/csup 3 ./contrib/cvs/diff 34 ./contrib/cvs/src 3 ./contrib/diff 3 ./contrib/diff/lib 15 ./contrib/diff/src 1 ./contrib/file 69 ./contrib/gcc 1 ./contrib/gcc/cp 31 ./contrib/gcclibs/libcpp 1 ./contrib/gcclibs/libiberty 1 ./contrib/gcclibs/libiberty/testsuite 6 ./contrib/gcclibs/libmudflap 5 ./contrib/gdb/gdb 1 ./contrib/gdb/gdb/cli 2 ./contrib/gnu-sort 1 ./contrib/gnu-sort/src 2 ./contrib/groff 1 ./contrib/groff/contrib/groffer 1 ./contrib/groff/contrib/pdfmark 1 ./contrib/groff/src/devices/grolbp 2 ./contrib/groff/src/preproc/html 1 ./contrib/groff/src/preproc/tbl 11 ./contrib/groff/src/utils/indxbib 1 ./contrib/groff/src/utils/lkbib 1 ./contrib/groff/src/utils/lookbib 2 ./contrib/ipfilter/tools 3 ./contrib/less 5 ./contrib/libf2c/libI77 3 ./contrib/libobjc 1 ./contrib/libpcap 1 ./contrib/libpcap/lbl 2 ./contrib/libreadline 5 ./contrib/libstdc++ 1 ./contrib/libstdc++/include/c 1 ./contrib/libstdc++/include/c_compatibility 2 ./contrib/libstdc++/include/c_std 1 ./contrib/libstdc++/include/ext 1 ./contrib/lukemftp/src 1 ./contrib/ncurses/man 1 ./contrib/ncurses/ncurses 2 ./contrib/ncurses/ncurses/base 1 ./contrib/ncurses/ncurses/tinfo 1 ./contrib/ncurses/progs 2 ./contrib/ntp/sntp 1 ./contrib/nvi/ex 2 ./contrib/one-true-awk 1 ./contrib/openbsm/bin/auditreduce 3 ./contrib/opie/libmissing 7 ./contrib/pf/pflogd 1 ./contrib/sendmail/libmilter 1 ./contrib/sendmail/libmilter/docs 4 ./contrib/sendmail/libsm 1 ./contrib/sendmail/mail.local 4 ./contrib/sendmail/src 1 ./contrib/tcpdump 1 ./contrib/tcpdump/lbl 1 ./contrib/telnet/telnet 1 ./contrib/texinfo 4 ./contrib/texinfo/info 6 ./contrib/texinfo/makeinfo 5 ./contrib/texinfo/util 1 ./contrib/traceroute/lbl 1 ./contrib/wpa/src/eap_peer 1 ./contrib/wpa/src/utils 1 ./crypto/heimdal/appl/ftp/ftpd 1 ./crypto/heimdal/appl/telnet/telnet 6 ./crypto/heimdal/lib/asn1 2 ./crypto/heimdal/lib/com_err 5 ./crypto/heimdal/lib/hx509 2 ./crypto/heimdal/lib/krb5 1 ./crypto/heimdal/lib/roken 4 ./crypto/heimdal/lib/sl 1 ./crypto/openssl/crypto/asn1 5 ./crypto/openssl/crypto/bio 13 ./crypto/openssl/crypto/des 1 ./crypto/openssl/crypto/err 1 ./crypto/openssl/crypto/pkcs12 1 ./crypto/openssl/crypto/pkcs7 1 ./crypto/openssl/crypto/rand 1 ./crypto/openssl/crypto/rc4 2 ./crypto/openssl/crypto/threads 2 ./crypto/openssl/demos/bio 4 ./crypto/openssl/demos/eay 3 ./crypto/openssl/doc/crypto 1 ./crypto/openssl/fips/dsa 1 ./crypto/openssl/fips/sha 1 ./crypto/openssl/ssl 1 ./crypto/openssl/test 1 ./games/fortune/fortune 3 ./games/fortune/strfile 2 ./gnu/usr.bin/cc/cc_tools 2 ./gnu/usr.bin/cc/libcpp 1 ./gnu/usr.bin/cpio 5 ./gnu/usr.bin/grep 3 ./gnu/usr.bin/rcs/lib 1 ./gnu/usr.bin/sort 1 ./include 1 ./lib/libarchive 3 ./lib/libc/rpc/PSD.doc 6 ./lib/libc/stdio 3 ./lib/libc/xdr 2 ./lib/libfetch 5 ./lib/libz 1 ./libexec/bootpd 1 ./libexec/bootpd/tools/bootpef 1 ./sbin/ldconfig 1 ./sbin/md5 2 ./sbin/quotacheck 9 ./sbin/restore 3 ./sbin/savecore 1 ./sbin/sysctl 3 ./secure/lib/libcrypto/man 2 ./secure/usr.bin/bdes 1 ./share/doc/papers/sysperf 1 ./share/doc/psd/04.uprog 1 ./share/syscons/scrnmaps 1 ./sys/boot/arm/ixp425/boot2 7 ./sys/boot/ficl 1 ./sys/boot/forth 1 ./sys/contrib/dev/acpica/common 2 ./sys/contrib/dev/acpica/compiler 1 ./tools/test/ppsapi 2 ./usr.bin/at 4 ./usr.bin/bsdiff/bsdiff 5 ./usr.bin/colldef 8 ./usr.bin/compress 4 ./usr.bin/compress/doc 2 ./usr.bin/cut 1 ./usr.bin/fetch 3 ./usr.bin/gprof 1 ./usr.bin/gzip 2 ./usr.bin/head 2 ./usr.bin/indent 4 ./usr.bin/lex 1 ./usr.bin/locate/code 2 ./usr.bin/mail 1 ./usr.bin/make 6 ./usr.bin/mklocale 2 ./usr.bin/mkstr 1 ./usr.bin/msgs 1 ./usr.bin/pr 2 ./usr.bin/printf 3 ./usr.bin/sed 6 ./usr.bin/tip/tip 1 ./usr.bin/uudecode 1 ./usr.bin/xlint/common 1 ./usr.bin/xlint/lint1 2 ./usr.bin/xlint/llib 1 ./usr.bin/xstr 1 ./usr.sbin/acpi/acpidump 3 ./usr.sbin/ctm/ctm 2 ./usr.sbin/ctm/ctm_rmail 1 ./usr.sbin/ctm/ctm_smail 3 ./usr.sbin/ctm/mkCTM 1 ./usr.sbin/extattr 4 ./usr.sbin/fdread 3 ./usr.sbin/kgmon 3 ./usr.sbin/kldxref 5 ./usr.sbin/lpr/common_source 1 ./usr.sbin/lpr/lpc 1 ./usr.sbin/ndiscvt 1 ./usr.sbin/pkg_install/info 2 ./usr.sbin/pkg_install/lib 1 ./usr.sbin/pmcstat 1 ./usr.sbin/pw 3 ./usr.sbin/sysinstall 5 ./usr.sbin/zic About 550+ places to audit in src/ for proper usage to say world would be clean and we can ship it; some are in contrib/ ... Considering that world already broke after this I'd prefer it to be backed out. As others pointed out, noone knows how many ports will break runtime by that. We should re-introduce it a later time, possibly after 8.0-R though for standard compliance, once more code has been audited. /bz -- Bjoern A. Zeeb The greatest risk is not taking one.