clang and -mfpmath=387 on ARCH=amd64

Alexander Best arundel at freebsd.org
Fri Dec 17 12:25:56 UTC 2010


On Tue Dec 14 10, Alexander Best wrote:
> On Sun Dec 12 10, Dimitry Andric wrote:
> > On 2010-12-11 12:47, Alexander Best wrote:
> > >clang doesn't seem to make use of -mfpmath=387 on ARCH=amd64 and complains
> > >about it (e.g. during TARGET=buildkernel).
> > >
> > >any thoughts about the attached patch?
> > 
> > I have compiled two GENERIC kernels on amd64 with and without the
> > -mfpmath=386 option, and those resulted in exactly the same binaries
> > (apart from the compilation timestamp).
> > 
> > So I think the whole -mfpmath=387 option is nonsensical anyway.  The
> > comment just above those CFLAGS in sys/conf/kern.mk says:
> 
> i think for i386 the case is clear: -mfpmath=387 *is* the default. for amd64 it
> depends. if we can be sure that the -mno-sse[2-3]? options will set
> -mfpmath=387 there is no need to set -mfpmath=387. it seems from your tests and
> also from a logical sense of point that this is the case. however the gcc
> manual doesn't really state this matter. so it could in fact be possible that
> even with -mno-sse[2-3]? set, -mfpmath=sse remains the default setting for
> amd64.

any update on this issue? anybody voting against removing -mfpmath=387
entirely?

cheers.
alex

> 
> cheers.
> alex
> 
> > 
> > # For AMD64, we explicitly prohibit the use of FPU, SSE and other SIMD
> > # operations inside the kernel itself.  These operations are exclusively
> > # reserved for user applications.
> > 
> > However, according to the gcc manual, the -mfpmath option does *not*
> > disable FPU instructions at all, but simply switches the default (for
> > amd64) from SSE to 387 instructions:
> > 
> > http://gcc.gnu.org/onlinedocs/gcc-4.2.4/gcc/i386-and-x86_002d64-Options.html#index-march-1052
> > 
> > Since -mno-sse is already specified, this flag may actually be worse
> > than not specifying it at all! :)
> > 
> > I suggest to just remove the entire -mfpmath=387 option unconditionally.
> 
> -- 
> a13x

-- 
a13x


More information about the freebsd-toolchain mailing list