missing fpresetsticky in ieeefp.h
O. Hartmann
ohartman at uni-mainz.de
Thu Feb 2 04:38:15 PST 2006
Bruce Evans schrieb:
> 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
Thanks a lot. In prior software compilations of GMT on FBSD/AMD64 I
commented out the appropriate line in gmt_init.c without any hazardous
effects - but I never used GMT that intensive having ever recognozed any
malicious side effects.
I should contact the guys from Soest/Hawaii asking them for any serious
effects commenting out this line on amd64 architectures.
Oliver
More information about the freebsd-amd64
mailing list