qemu-devel
[Top][All Lists]
Advanced

[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: william lin
Subject: Re: [Qemu-devel] [PATCH v2 0/5] target/m68k: implement 680x0 FPU (part 3)
Date: Tue, 5 Dec 2017 02:56:17 -0600

On Wed, Nov 29, 2017 at 9:19 AM, Thomas Huth <address@hidden> wrote:

> 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
>
>


After looking into all these files, I noticed that the previous code:

http://svn.code.sf.net/p/previous/code/trunk/src/softfloat/softfloat_fpsp.c

uses SoftFloat 2b code for the helper functions:
http://svn.code.sf.net/p/previous/code/trunk/src/softfloat/softfloat.h

I'm not familiar with licensing but to me it appears that Andreas Grabher
has his code as an extension to the wrong release of SoftFloat.

>>>>
/*============================================================================
>>>>
>>>>  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.
>>>>
*----------------------------------------------------------------------------*/

So we can't use these C code directly as it uses helpers from 2b. However,
would it be
ok to write our own set of C code along with the necessary helpers using
the C and asm
code as reference? (would be part of 2a)

William
(https://lists.gnu.org/archive/html/qemu-devel/2017-11/msg05422.html)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]