From owner-svn-src-all@freebsd.org Sun Jul 31 00:20:57 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 11D08BA24F4; Sun, 31 Jul 2016 00:20:57 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail106.syd.optusnet.com.au (mail106.syd.optusnet.com.au [211.29.132.42]) by mx1.freebsd.org (Postfix) with ESMTP id D0A781498; Sun, 31 Jul 2016 00:20:56 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c122-106-149-109.carlnfd1.nsw.optusnet.com.au (c122-106-149-109.carlnfd1.nsw.optusnet.com.au [122.106.149.109]) by mail106.syd.optusnet.com.au (Postfix) with ESMTPS id E2E783C4868; Sun, 31 Jul 2016 10:20:45 +1000 (AEST) Date: Sun, 31 Jul 2016 10:20:44 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: "Bjoern A. Zeeb" cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303560 - head/usr.sbin/uathload In-Reply-To: <201607302039.u6UKddbt096834@repo.freebsd.org> Message-ID: <20160731092544.K976@besplex.bde.org> References: <201607302039.u6UKddbt096834@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=EfU1O6SC c=1 sm=1 tr=0 a=R/f3m204ZbWUO/0rwPSMPw==:117 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=kj9zAlcOel0A:10 a=L6TY2ldzgA1nSrPHxQAA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 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: Sun, 31 Jul 2016 00:20:57 -0000 On Sat, 30 Jul 2016, Bjoern A. Zeeb wrote: > Log: > Rename devname to udevname after including stdlib.h in r303445 > as gcc trips over the devname(3) and reports 'shadows a global declaration'. You mean "as gcc actually works, so it detects and reports that devname in the program 'shadows a global declaration'". > This should unbreak gcc based world builds. We asked for this warning using -Wshadow. -Wshadow sometimes works for clang too. But -Wsystem-headers is very broken for clang. It is the default for gcc, at least for controlling -Wshadow, and we put it in CFLAGS at WARNS >= 1, but clang silently ignores it, at least for controlling -Wshadow. I don't like changing names, especially to work around namespace pollution, but pollution in "standard" headers is especially dangerous and hard to fix since you can't control it. So renaming to avoid seems least bad. The bug turns off -Wshadow for headers where it is most needed, since of of course your headers are better written and you know what is in them. Even -Wno-system-headers shouldn't turn off -Wshadow, since the -Wshadow warning is not about internals of system headers but about leakage of the internals. You would also want it if you or a system header misused a reserved or unreserved name like _exit or off64_t. Looking for such errors, I found the interesting names quot and rem in (these are bad standard struct member names, so applications must not #define them), and lots of new bugs in starting with off64_t polluting even the C90 case. also uses read, write, seek and close as bad nonstandard struct member names, giving the same restrictions as for quot and rem, but this is only in the _BSD_VISIBLE case. Bruce