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

Reply via email to