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