From owner-freebsd-arch@FreeBSD.ORG Mon Mar 9 13:28:03 2009 Return-Path: Delivered-To: arch@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6E31B106564A for ; Mon, 9 Mar 2009 13:28:03 +0000 (UTC) (envelope-from andrew@areilly.bpa.nu) Received: from nschwqsrv02p.mx.bigpond.com (nschwqsrv02p.mx.bigpond.com [61.9.189.234]) by mx1.freebsd.org (Postfix) with ESMTP id EFB1D8FC1A for ; Mon, 9 Mar 2009 13:28:02 +0000 (UTC) (envelope-from andrew@areilly.bpa.nu) Received: from nschwotgx02p.mx.bigpond.com ([124.188.162.219]) by nschwmtas02p.mx.bigpond.com with ESMTP id <20090309105554.EDQS22514.nschwmtas02p.mx.bigpond.com@nschwotgx02p.mx.bigpond.com> for ; Mon, 9 Mar 2009 10:55:54 +0000 Received: from areilly.bpa.nu ([124.188.162.219]) by nschwotgx02p.mx.bigpond.com with ESMTP id <20090309105552.DCIH11603.nschwotgx02p.mx.bigpond.com@areilly.bpa.nu> for ; Mon, 9 Mar 2009 10:55:52 +0000 Received: (qmail 3954 invoked by uid 501); 9 Mar 2009 10:55:41 -0000 Date: Mon, 9 Mar 2009 21:55:41 +1100 From: Andrew Reilly To: Sam Leffler , arch@FreeBSD.ORG Message-ID: <20090309105541.GA2464@duncan.reilly.home> References: <20090307103138.GA34456@zim.MIT.EDU> <49B2B139.6010104@freebsd.org> <20090308070924.GA39236@zim.MIT.EDU> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090308070924.GA39236@zim.MIT.EDU> User-Agent: Mutt/1.4.2.3i X-RPD-ScanID: Class unknown; VirusThreatLevel unknown, RefID str=0001.0A150204.49B4F5B9.0030:SCFSTAT4301531,ss=1,fgs=0 Cc: Subject: Re: C99 inlines X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Mar 2009 13:28:04 -0000 On Sun, Mar 08, 2009 at 03:09:24AM -0400, David Schultz wrote: > My main motivation is that currently there's no easy way to use > non-static inline functions that works with both gcc and other > compilers. Please pardon my ignorance: what *is* non-static inline behaviour? I've only ever used static inlines myself: they're the only sort that make sense (to me), in the world of standard C static compilation and linkage. What happens elsewhen? Does the compiler generate a "real" function with an exportable name that can be linked-to? Why would you want to do that, when that's what perfectly ordinary functions do? I can't imagine an extern inline meaning anything useful unless one can do LLVM-style link-time optimization. Is that on the cards? > Furthermore, even GNU wants to move to using the C99 > semantics by default. Once that happens, continuing to be > dependent upon the old GNU inline semantics is likely to cause > porting headaches. Well, we don't want to be depending on non-standard semantics, if we can help it. Sure. Are we? Where? Cheers, -- Andrew