On 09/20/2013 12:29 AM, Steve Reinhardt wrote:
On Thu, Sep 19, 2013 at 2:21 PM, Nathan Binkert <[email protected]
<mailto:[email protected]>> wrote:
> On Sept. 19, 2013, 9:17 p.m., Ali Saidi wrote:
> > please don't commit. The language in the license seems
troubling to me at least.
Really? What part? I looked at it, and it doesn't seem
particularly problematic.
The blanket indemnification seems like a concept that lawyers might
balk at. I don't recall seeing a phrase like this before; it seems
like a step beyond the "no warranty" BSD clause. Is this a standard
open-source license?
It's not. I've done some more digging and it seems like Cisco are using
SoftFloat with the troublesome license. Linux on the other hand uses an
older version of SoftFloat, which doesn't contain the most troublesome
parts of the licence. However, there was some debate over the issue [1]
some time ago. In the end, they decided to keep softfloat since they are
using an older version [2]. See [3] for the source.
I think we need to include something like softfloat to properly support
floating point properly, especially on x86, in the long term. In the
short term, there are several fixes for x86 that require support for
converting to/from 80-bit floats.
As I see it, there are three solutions if the licence turns out to be a
blocker: 1) We use the softfloat version in the kernel. This probably
requires a bit of hacking to get it to work in our environment. It's
should bre doable, but we need to be careful to avoid GPL problems. 2)
We use inline assembly which is supported by both clang and gcc. This
makes it impossible to compile gem5's x86 frontend for anything other
than x86. 3) We include libfputils which I wrote some time ago. It
currently supports conversion to and from 80-bit floats and can identify
float classes (different types of NaNs, infinities, etc.). Its main
limitation when converting from 80-bit floats to doubles is that it
truncates the mantissa (rounds towards zero) instead of doing proper
rounding. This code is BSD, so there are no licensing issues here.
I'd like to see this resolved quickly, I only have a limited time window
to merge the gem5 patches from my previous project and that window is
quickly coming to an end. My guess is that using libfputils is the
quickest route to solving the problem, but using softfloat from the
kernel is a better long term solution.
//Andreas
[1]
http://lists.infradead.org/pipermail/linux-arm-kernel/2013-April/162121.html
[2]
http://lists.infradead.org/pipermail/linux-arm-kernel/2013-April/163904.html
[3]
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/nwfpe/softfloat.h
[4] https://github.com/andysan/libfputils
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev