From owner-freebsd-sparc Mon Jan 13 14: 0:12 2003 Delivered-To: freebsd-sparc@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B0E2537B401; Mon, 13 Jan 2003 14:00:10 -0800 (PST) Received: from soulshock.mail.pas.earthlink.net (soulshock.mail.pas.earthlink.net [207.217.120.130]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2225943F5B; Mon, 13 Jan 2003 14:00:07 -0800 (PST) (envelope-from tlambert2@mindspring.com) Received: from stork (stork.mail.pas.earthlink.net [207.217.120.188]) by soulshock.mail.pas.earthlink.net (8.11.6+Sun/8.11.6) with ESMTP id h0DLISH05396; Mon, 13 Jan 2003 13:18:28 -0800 (PST) Received: from pool0169.cvx21-bradley.dialup.earthlink.net ([209.179.192.169] helo=mindspring.com) by stork with asmtp (SSLv3:RC4-MD5:128) (Exim 3.33 #1) id 18YBuY-0005Pr-00; Mon, 13 Jan 2003 13:14:23 -0800 Message-ID: <3E232BD8.234FA1B4@mindspring.com> Date: Mon, 13 Jan 2003 13:12:56 -0800 From: Terry Lambert X-Mailer: Mozilla 4.79 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Marcel Moolenaar Cc: Bruce Evans , Jake Burkholder , sparc@FreeBSD.ORG, current@FreeBSD.ORG Subject: Re: [PATCH] Re: fpsetmask on sparc64 References: <20030113100558.GA3423@dhcp01.pn.xcllnt.net> <20030113211536.E11945-100000@gamplex.bde.org> <20030113204505.GA798@dhcp01.pn.xcllnt.net> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-ELNK-Trace: b1a02af9316fbb217a47c185c03b154d40683398e744b8a41e89a9ed863942cc3974e799c3f84c3193caf27dac41a8fd350badd9bab72f9c350badd9bab72f9c Sender: owner-freebsd-sparc@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org Marcel Moolenaar wrote: > > A technical reason for not inlining some of them is that they may need > > to interact with signal handling. > > I don't see how this is related. The only advantage of not inlining > is the ability to declare the functions as weak so that they can be > overridden. In all other cases it's just an implementation detail > that should not affect the functionality. This does not apply in this case, since the inlined function is not itself making a system call that could be interrupted by a signal. This argument only applies in the case where the inlined function makes a system call, and the default behaviour is not SA_RESTART. > > Non-inline versions are needed for at least calling functions through > > function pointers if this is supported, and C requires it to be supported > > for most functions including the ctype 1's. This requirement causes > > some of the implementation complications in . > > I see. Using static inline functions rather than macros should mostly > solve this. Function pointer comparison will not work though, but I > don't know if it has to. This is a valid argument, but we are not really here to fix the lack of an i386 prototype in scope in the case that inilining is disabled, any more than we are here to fix the fact that everything goes to hell if the #ifdef for "GNUC" fails because another compiler is being used. The prototypes are out of scope in the non-inline case, but the #define's are not. I don't know the correct compiler voodoo to make the #define's go away when inlining is disabled, the way the inline functions themselves do (maybe Bruce can help out here). The other issue is that there are not i386 implementations for these functions in /usr/src/lib/libc/i386/gen, at this point, so you would either need to pull the code in from NetBSD/OpenBSD, or you would need to have a .c file that forces the inlining with stub instances, including the machine dependent header file. To my mind, this is a problem to address *after* the 5.0 release; one hopes that the ports compilation issues will be addressed *before* the 5.0 release. One also hopes that the *way* they are addressed will be to make the ports *work* on IA64, SPARC, and Alpha, rather than making them *break* on i386. Consistent behaviour is not a good thing, if it's consistently *bad*... 8-) 8-). -- Terry To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-sparc" in the body of the message