From owner-freebsd-standards@FreeBSD.ORG Sat Mar 20 19:50:48 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0AB0D16A4CE for ; Sat, 20 Mar 2004 19:50:48 -0800 (PST) Received: from khavrinen.lcs.mit.edu (khavrinen.lcs.mit.edu [128.30.28.20]) by mx1.FreeBSD.org (Postfix) with ESMTP id B5FEF43D31 for ; Sat, 20 Mar 2004 19:50:47 -0800 (PST) (envelope-from wollman@khavrinen.lcs.mit.edu) Received: from khavrinen.lcs.mit.edu (localhost [IPv6:::1]) by khavrinen.lcs.mit.edu (8.12.9/8.12.9) with ESMTP id i2L3ohtx044843 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK CN=khavrinen.lcs.mit.edu issuer=SSL+20Client+20CA); Sat, 20 Mar 2004 22:50:43 -0500 (EST) (envelope-from wollman@khavrinen.lcs.mit.edu) Received: (from wollman@localhost) by khavrinen.lcs.mit.edu (8.12.9/8.12.9/Submit) id i2L3ohKf044840; Sat, 20 Mar 2004 22:50:43 -0500 (EST) (envelope-from wollman) Date: Sat, 20 Mar 2004 22:50:43 -0500 (EST) From: Garrett Wollman Message-Id: <200403210350.i2L3ohKf044840@khavrinen.lcs.mit.edu> To: Archie Cobbs In-Reply-To: <200403182331.i2INVSIb005180@arch20m.dellroad.org> References: <200403182307.i2IN7403029016@khavrinen.lcs.mit.edu> <200403182331.i2INVSIb005180@arch20m.dellroad.org> X-Spam-Score: -19.8 () IN_REP_TO,QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES X-Scanned-By: MIMEDefang 2.37 cc: freebsd-standards@FreeBSD.ORG Subject: Re: _BSD_SOURCE vs. __BSD_VISIBLE X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Mar 2004 03:50:48 -0000 < said: > I want everything.. on Linux I need at least _GNU_SOURCE to get it, > otherwise my compilation fails due to undeclared stuff. Why did Linux > choose to arrange things so that the "default" is to not show everything? > Don't just say they made a "bad decision".. they must have had some > rationale, even if flawed. Perhaps you should ask a Linux developer that question. I can hardly speak for them. By my reading of the standard, if the application defines _POSIX_C_SOURCE to a recognized value, then any system header files included *must not* declare any symbols outside the namespaces reserved in the Standard for those header files. (If the application defines _POSIX_C_SOURCE and then includes a non-Standard system header file, all bets are off, and in many cases compilation will and ought to break.) If an application defines a macro in the implementation name space, then the compiler is free to compile the module as an implementation of `system("rogue");'. -GAWollman