[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 0/5] target/m68k: implement 680x0 FPU (part 3
From: |
Thomas Huth |
Subject: |
Re: [Qemu-devel] [PATCH v2 0/5] target/m68k: implement 680x0 FPU (part 3) |
Date: |
Wed, 29 Nov 2017 16:19:34 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 |
On 29.11.2017 15:17, Laurent Vivier wrote:
> Le 29/11/2017 à 15:08, Thomas Huth a écrit :
>> On 29.11.2017 14:59, Peter Maydell wrote:
>>> On 29 November 2017 at 13:42, Laurent Vivier <address@hidden> wrote:
>>>> these functions come from:
>>>>
>>>> http://previous.alternative-system.com/
>>>>
>>>> http://svn.code.sf.net/p/previous/code/trunk/src/softfloat/softfloat.c
>>>>
>>>> This is also a modified softfloat, release 2b
>>>> which is BSD license if I'm correct.
>>>
>>> We can't use softfloat2b code (the part of the license that goes
>>> "USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS
>>> AND ORGANIZATIONS [...] WHO FURTHERMORE EFFECTIVELY INDEMNIFY JOHN
>>> HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE INSTITUTE" isn't
>>> GPL compatible).
>>>
>>> We can use softfloat2a code, which doesn't have that indemnity clause.
>>
>> Sigh. That's why WinUAE and Hatari immediately switched back to
>> softfloat2a (derived from QEMU) after we've identified the problem
>> there. Looks like the Previous folks forgot to do that step, too :-(
>>
>>>> This code has also been copied to WinUAE (GPL), where softfloat has been
>>>> copied from QEMU:
>>>> https://github.com/tonioni/WinUAE/blob/master/softfloat/softfloat.cpp
>>>
>>> Yes, lots of projects used the softfloat2b code without realising
>>> it wasn't GPL compatible (including QEMU -- we had a painful job
>>> to fix things up and convert to the 2a codebase a while back).
>>>
>>>> But I think the bad news comes later:
>>>>
>>>> all the other functions (sin, cos, tan, log, exp, ...) found in previous
>>>> (softfloat_fpsp.c) are "derived" from NeXT library FPSP:
>>>>
>>>> http://svn.code.sf.net/p/previous/code/trunk/src/softfloat/softfloat_fpsp.c
>>>>
>>>> /*============================================================================
>>>>
>>>> This C source file is an extension to the SoftFloat IEC/IEEE
>>>> Floating-point
>>>> Arithmetic Package, Release 2a.
>>>>
>>>> Written by Andreas Grabher for Previous, NeXT Computer Emulator.
>>>>
>>>> =============================================================================*/
>>>> ...
>>>> /*----------------------------------------------------------------------------
>>>> | Algorithms for transcendental functions supported by MC68881 and MC68882
>>>> | mathematical coprocessors. The functions are derived from FPSP library.
>>>> *----------------------------------------------------------------------------*/
>>>>
>>>> FPSP library can be found:
>>>>
>>>> https://ftp.nice.ch/pub/next/developer/hardware/m68k/
>>>>
>>>> And the assembly source code is not free at all:
>>>>
>>>> https://ftp.nice.ch/pub/next/developer/hardware/m68k/_libFPSP.1.p2.N.s/l_fpsp.h
>>>>
>>>>
>>>> | Copyright (C) Motorola, Inc. 1991
>>>> | All Rights Reserved
>>>> |
>>>> | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA
>>>> | The copyright notice above does not evidence any
>>>> | actual or intended publication of such source code.
>>>>
>>>>
>>>> So I'm wondering what license apply to the C version found in "Previous".
>>>
>>> Good question. It's clearly not copied code (since the FPSP library is
>>> all native m68k assembly), but presumably it's the same algorithms
>>> transliterated into C...
>>
>> There also seem to be other versions of that library available, e.g.:
>>
>> https://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/sys/arch/m68k/fpsp/l_fpsp.h
>>
>> Maybe Andreas (now on CC: ) could clarify which version he used / how
>> the C sources were developed?
>
> Thank you Thomas,
>
> This seems to be the same code re-licensed to:
>
> MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GROUP
> M68000 Hi-Performance Microprocessor Division
> M68040 Software Package
>
> M68040 Software Package Copyright (c) 1993, 1994 Motorola Inc.
> All rights reserved.
>
> THE SOFTWARE is provided on an "AS IS" basis and without warranty.
> To the maximum extent permitted by applicable law,
> MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED,
> INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
> PARTICULAR PURPOSE and any warranty against infringement with
> regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF)
> and any accompanying written materials.
>
> To the maximum extent permitted by applicable law,
> IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER
> (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS
> PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR
> OTHER PECUNIARY LOSS) ARISING OF THE USE OR INABILITY TO USE THE
> SOFTWARE. Motorola assumes no responsibility for the maintenance
> and support of the SOFTWARE.
>
> You are hereby granted a copyright license to use, modify, and
> distribute the SOFTWARE so long as this entire notice is retained
> without alteration in any modified and/or redistributed versions,
> and that such modified versions are clearly identified as such.
> No licenses are granted by implication, estoppel or otherwise
> under any patents or trademarks of Motorola, Inc.
IANAL, but to me that sounds like it is compatible to the GPL, so I
think there should not be a problem if the C sources are based on these
assembler sources?
Thomas
- [Qemu-devel] [PATCH v2 2/5] target/m68k: add fmod/frem, (continued)
- [Qemu-devel] [PATCH v2 2/5] target/m68k: add fmod/frem, Laurent Vivier, 2017/11/23
- [Qemu-devel] [PATCH v2 3/5] softfloat: use floatx80_infinity in softfloat, Laurent Vivier, 2017/11/23
- [Qemu-devel] [PATCH v2 4/5] softfloat: add floatx80_getman(), floatx80_getexp(), floatx80_scale(), Laurent Vivier, 2017/11/23
- [Qemu-devel] [PATCH v2 5/5] target-m68k: add fscale, fgetman and fgetexp, Laurent Vivier, 2017/11/23
- [Qemu-devel] [PATCH v2 1/5] softfloat: add floatx80_mod(), Laurent Vivier, 2017/11/23
- Re: [Qemu-devel] [PATCH v2 0/5] target/m68k: implement 680x0 FPU (part 3), Peter Maydell, 2017/11/29