Date: Thu, 2 Feb 2006 16:01:05 -0000 From: "Bruce Evans" <bde@zeta.org.au> To: <Administrator> Cc: "O. Hartmann" <ohartman@mail.uni-mainz.de>, freebsd-stable@FreeBSD.org, freebsd-amd64@FreeBSD.org Subject: Re: missing fpresetsticky in ieeefp.h Message-ID: <000601c62811$dfaaddf0$fe07000a@Home.local> In-Reply-To: <43E1E8B0.3030702@uni-mainz.de> References: <43E1D1E9.3000302@mail.uni-mainz.de><43E1E8B0.3030702@uni-mainz.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 2 Feb 2006, O. Hartmann wrote: > O. Hartmann schrieb: >> Hello. >> I do not know whether this should be a bug report or not, I will ask prior >> to any further action. >> >> Reading 'man fpresetsticky' show up a man page for FPGETROUND(3) and tells >> me the existence of the fpresetsticky routine. This is a bug in the man page. fpresetsticky() is supposed to only exist on i386's, but the man page and its link to fpresetsticky.3 are installed for all arches. >> Now take a look into <machine/ieeefp.h>, where this function should be >> declared. Nothing, I can not find this routine, it seems to be 'not >> available' on my FreeBSD6.1-PRERELEASE AMD64 (no 32Bit compatibility). It was removed for amd64 and never existed for some other arches. It was apparently unused when it was removed a year ago. >> Background is, I try to compile GMT 4.1 and ran into this problem again (I >> reveal this error since FBSD 5.4-PRE also on i386). >> >> If fpresetsticky() isn't available on amd64 anymore, it shouldn't be >> mentioned in the manpage. But it seems to me to be a bug, so somebody >> should confirm this. % RCS file: /home/ncvs/src/sys/amd64/include/ieeefp.h,v % Working file: ieeefp.h % head: 1.14 % ... % ---------------------------- % revision 1.13 % date: 2005/03/15 15:53:39; author: das; state: Exp; lines: +0 -20 % Remove fpsetsticky(). This was added for SysV compatibility, but due % to mistakes from day 1, it has always had semantics inconsistent with % SVR4 and its successors. In particular, given argument M: % % - On Solaris and FreeBSD/{alpha,sparc64}, it clobbers the old flags % and *sets* the new flag word to M. (NetBSD, too?) % - On FreeBSD/{amd64,i386}, it *clears* the flags that are specified in M % and leaves the remaining flags unchanged (modulo a small bug on amd64.) % - On FreeBSD/ia64, it is not implemented. % % There is no way to fix fpsetsticky() to DTRT for both old FreeBSD apps % and apps ported from other operating systems, so the best approach % seems to be to kill the function and fix any apps that break. I % couldn't find any ports that use it, and any such ports would already % be broken on FreeBSD/ia64 and Linux anyway. % % By the way, the routine has always been undocumented in FreeBSD, % except for an MLINK to a manpage that doesn't describe it. This % manpage has stated since 5.3-RELEASE that the functions it describes % are deprecated, so that must mean that functions that it is *supposed* % to describe but doesn't are even *more* deprecated. ;-) % % Note that fpresetsticky() has been retained on FreeBSD/i386. As far % as I can tell, no other operating systems or ports of FreeBSD % implement it, so there's nothing for it to be inconsistent with. % % PR: 75862 % Suggested by: bde % ---------------------------- Bruce _______________________________________________ freebsd-stable@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?000601c62811$dfaaddf0$fe07000a>