* generic fenv wrapup
@ 2019-08-12 13:51 Joel Sherrill
2019-08-13 7:50 ` Corinna Vinschen
0 siblings, 1 reply; 2+ messages in thread
From: Joel Sherrill @ 2019-08-12 13:51 UTC (permalink / raw)
To: Newlib
Hi
We discussed a lot for this patch. I see FE_NOMASK_ENV isn't included.
When looking at that, the comment in /usr/include/bits/fenv.h on CentOS 7
has a subject verb agreement issue that leads me to question its intent.
I would like someone to confirm that the glibc manual and this comment
mean the same thing:
ifd#f __USE_GNU
/* Floating-point environment where none of the exception is masked. */
# define FE_NOMASK_ENV ((const fenv_t *) -2)
#endif
And from the manual:
If possible, the GNU C Library defines a macro FE_NOMASK_ENV which rep‐
resents an environment where every exception raised causes a trap
to
occur. You can test for this macro using #ifdef. It is defined
only
if _GNU_SOURCE is defined.
I think the manual version is clearer on intent.
Also.. there are three other GNU specific methods:
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <fenv.h>
int feenableexcept(int excepts);
int fedisableexcept(int excepts);
int fegetexcept(void);
Should all those be added conditionally?
What else did we think needed to be done with the fenv generic code before
moving on to focusing on implementations?
--joel
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: generic fenv wrapup
2019-08-12 13:51 generic fenv wrapup Joel Sherrill
@ 2019-08-13 7:50 ` Corinna Vinschen
0 siblings, 0 replies; 2+ messages in thread
From: Corinna Vinschen @ 2019-08-13 7:50 UTC (permalink / raw)
To: newlib
[-- Attachment #1: Type: text/plain, Size: 1867 bytes --]
On Aug 12 08:51, Joel Sherrill wrote:
> Hi
>
> We discussed a lot for this patch. I see FE_NOMASK_ENV isn't included.
> When looking at that, the comment in /usr/include/bits/fenv.h on CentOS 7
> has a subject verb agreement issue that leads me to question its intent.
> I would like someone to confirm that the glibc manual and this comment
> mean the same thing:
>
> ifd#f __USE_GNU
> /* Floating-point environment where none of the exception is masked. */
> # define FE_NOMASK_ENV ((const fenv_t *) -2)
> #endif
>
> And from the manual:
>
> If possible, the GNU C Library defines a macro FE_NOMASK_ENV which rep‐
> resents an environment where every exception raised causes a trap
> to
> occur. You can test for this macro using #ifdef. It is defined
> only
> if _GNU_SOURCE is defined.
>
> I think the manual version is clearer on intent.
>
> Also.. there are three other GNU specific methods:
>
> #define _GNU_SOURCE /* See feature_test_macros(7) */
> #include <fenv.h>
>
> int feenableexcept(int excepts);
> int fedisableexcept(int excepts);
> int fegetexcept(void);
>
> Should all those be added conditionally?
_GNU_SOURCE definitely. Conditionally on what else?
> What else did we think needed to be done with the fenv generic code before
> moving on to focusing on implementations?
Just have a look into Cygwin's fenv.h. There's also fegetprec/fesetprec
which have been defined with SunOS and made it into a standarization
proposal http://www.open-std.org/jtc1/sc22//WG14/www/docs/n752.htm They
have not been standarized, though, so this is kind of optional. They
should probably get defined for x86{_64} but not necessarily for any
other target.
Corinna
--
Corinna Vinschen
Cygwin Maintainer
Red Hat
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-08-13 7:50 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-12 13:51 generic fenv wrapup Joel Sherrill
2019-08-13 7:50 ` Corinna Vinschen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).