This is the mail archive of the
cygwin-patches
mailing list for the Cygwin project.
Re: [PATCH] Add fenv.h and support.
- From: Christopher Faylor <cgf-use-the-mailinglist-please at cygwin dot com>
- To: cygwin-patches at cygwin dot com
- Date: Fri, 10 Sep 2010 17:43:47 -0400
- Subject: Re: [PATCH] Add fenv.h and support.
- References: <4C8A9AC8.7070904@gmail.com>
- Reply-to: cygwin-patches at cygwin dot com
On Fri, Sep 10, 2010 at 09:53:28PM +0100, Dave Korn wrote:
>
>
> Hi folks,
>
> This patch adds fenv.h and the related support routines in the Cygwin DLL.
>It's an entirely unencumbered implementation that I wrote from scratch using
>only the public docs for reference. We've been missing this for a while, what
>with PR323 and all, and if we add it in we'll be able to switch on the new
>decimal-floating-point features in the compiler. (Amongst I'm sure many other
>uses).
>
>winsup/cygwin/ChangeLog:
>
> * Makefile.in (DLL_OFILES): Add new fenv.o module.
> (fenv_CFLAGS): New flags definition for fenv.o compile.
> * autoload.cc (std_dll_init): Use fenv.h functions instead of direct
> manipulation of x87 FPU registers.
> * crt0.c (mainCRTStartup): Likewise.
> * cygwin.din (feclearexcept, fegetexceptflag, feraiseexcept,
> fesetexceptflag, fetestexcept, fegetround, fesetround, fegetenv,
> feholdexcept, fesetenv, feupdateenv, fegetprec, fesetprec,
> feenableexcept, fedisableexcept, fegetexcept, _feinitialise,
> _fe_dfl_env, _fe_nomask_env): Export new functions and data items.
> * fenv.cc: New file.
> * posix.sgml: Update status of newly-implemented APIs.
> * include/fenv.h: Likewise related header.
> * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
>
> Testing: well, I'm running the GCC testsuite against it to verify it builds
>functioning decimal floating point code, and I've manually tested some of the
>simple functionality like setting the exceptions on and off. That's all so
>far, but I think it's close enough (and given that it's new functionality) to
>check in and fix any bugs that crop up on HEAD. (I'd like to also see if I
>can run some of the LSB or Posix verification testsuites against it, but I
>don't know what's involved in that yet; if anyone has any experience with any
>of that stuff, I'd appreciate being dropped a note off-list with a few pointers.)
Looks nice to me with one HUGE caveat: Please maintain the pseudo-sorted
order in cygwin.din. Sorry to have to impose this burden on you.
Other than that, please check in and thanks for the patch. It was obviously
a lot of work.
cgf