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