[PATCH v6 2/3] Add default implementation of fenv.h and all methods

Corinna Vinschen vinschen@redhat.com
Thu Aug 8 19:05:00 GMT 2019

On Aug  8 11:27, joel@rtems.org wrote:
> +/*
> + * This is a non-functional implementation that should be overridden
> + * by an architecture specific implementation in newlib/libm/machine/ARCH.
> + *
> + * The implmentation must defined FE_DFL_ENV to point to a default
> + * environment of type fenv_t.
> + */
> +static const fenv_t fe_dfl_env = { 0 };
> +const fenv_t *_fe_dfl_env = &fe_dfl_env;

Bummer.  This doesn't work.  The problem is that Cygwin needs to
initialize fe_dfl_env, like this:

  fegetenv (&fe_dfl_env);

However, even if I drop `const' as in Cygwin, if fe_dfl_env is static
I can't access it from the _feinitialise() function at DLL init time.

I'm not quite sure how to fix this.  Any ideas?  Do I have to drop
the idea to reuse this file and we need our own target-specific one?


P.S.: Apart from this problem we can use this now.  We should just add
the GNU specific FE_NOMASK_ENV soon, too.

Corinna Vinschen
Cygwin Maintainer
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/newlib/attachments/20190808/18b55e70/attachment.sig>

More information about the Newlib mailing list