On Tue, Jun 24, 2014 at 09:49:36AM -0700, Steve Kargl wrote:
>
> Not yet.
>
> On i386-*-freebsd
>
> In file included from ../../../gcc4x/libgfortran/runtime/fpu.c:29:0:
> ./fpu-target.h: In function 'set_fpu_trap_exceptions':
> ./fpu-target.h:31:3: error: unknown type name 'fp_except'
> fp_except cw = fpgetmask();
>
The (autogenerated?) fpu-target. h is totally bogus on FreeBSD.
The file includes things like
void
get_fpu_state (void *s)
{
fpu_state_t *state = s;
/* Check we can actually store the FPU state in the allocated size. */
assert (sizeof(fpu_state_t) <= GFC_FPE_STATE_BUFFER_SIZE);
s->mask = fpgetmask ();
s->sticky = fpgetsticky ();
s->round = fpgetround ();
}
The s-> in the last 3 lines should be state->.
There are several places where fp_except and fp_rnd are used
unconditionally. On FreeBSD (and perhaps other *BSD), there
is no fpsetsticky(). The function is fpresetsticky().
--
Steve