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

Joel Sherrill <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <CAF9ehCWFKA6nmeRbi68ZmxenD5bnDH8kmUmmV5JucbqjTt1aeQ@mail.gmail.com>
On Thu, Aug 8, 2019 at 2:05 PM Corinna Vinschen <[email protected]> wrote:

> On Aug  8 11:27, [email protected] 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?
>

I'm not opposed to making it non-const and not static. Whatever it
takes to make it work on Cygwin.

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

I'm not disagreeing but can that be added after this bulk is pushed?

It would be easier to address the Cygwin issue as you see fit and add this
if you could just change it in git. :)

--joel


>
> --
> Corinna Vinschen
> Cygwin Maintainer
> Red Hat
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.