lmi
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi] '--disable-apple_ieee' [Was: PATCH: disable the of system librarie


From: Greg Chicares
Subject: [lmi] '--disable-apple_ieee' [Was: PATCH: disable the of system libraries when building wx]
Date: Thu, 23 Jul 2020 21:35:42 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0

On 2020-07-23 14:08, Vadim Zeitlin wrote:
> On Thu, 23 Jul 2020 13:50:16 +0000 Greg Chicares <gchicares@sbcglobal.net> 
> wrote:
[...]
> GC> As for that apple IEEE thing...
> 
>  I'll need to look into this before answering your questions below. I've
> avoided doing it for 20+ years, but it seems the time has finally come to
> dive into it. For now, I can only say that "Apple" is a red herring, AFAICS
> this has nothing to do with neither Apple the company nor the platform. The
> reason we have a separate option for disabling this is that this code uses
> a different licence, that you need to separately accept, see
> 
> https://github.com/wxWidgets/wxWidgets/blob/v3.1.4/src/common/extended.c#L20,L33

It seems to be in 'lame':

http://lab.llvm.org:8080/artifacts/opt-view_test-suite/build/MultiSource/Benchmarks/MiBench/consumer-lame/CMakeFiles/consumer-lame.dir/html/_org_test-suite_MultiSource_Benchmarks_MiBench_consumer-lame_portableio.c.html

and in 'python', which blithely re-copyrights it:

https://ftp.nice.ch/pub/next/audio/converter/_GISO.3.3.s/GISO/Sox/_aiff.c.html

It's also here:

https://plan9.io/sources/plan9/sys/src/games/mp3enc/portableio.c

but relicensed there in a way incompatible with the GPL:

https://www.gnu.org/licenses/license-list.en.html#lucent102

> AFAICS this licence doesn't really contradict anything,

That's good sense, but not necessarily a legally safe interpretation.

> but it would still
> be simpler if we could avoid using this code completely. I'll add this to
> my TODO...

AFAICT, this code enables wx to serialize and deserialize 80-bit
floating-point numbers written to binary files, so the use case is
making such files readable (and even writable) on platforms that
don't support that format (otherwise, something like this:

  unsigned char ten_bytes[10];
  fread(&ten_bytes, 10, 1, file_ptr);
  long double x = *(long double*) ten_bytes;
  double y = bourn_cast<double>(x);

would suffice). Is that use case important to anyone? in 2020?

If you're thinking of reimplementing it, let me know so that I
can design some tests that try to break it.

Many years ago, lmi or its predecessor really did serialize
doubles (but not long doubles) as eight-byte packets. But we
haven't done that since about two decades ago, and we never
used wx for that purpose, so this code is unreachable by lmi.

> GC> I'm thinking maybe we should just get rid of
> GC>   --disable-apple_ieee
> GC>   --disable-gif
> GC> for lmi.

But now I have second thoughts about the apple ieee part, so...

>  I definitely wouldn't object to doing this but, on their own, these
> options are not a problem -- as long as we're building our private wx
> anyhow, we can use whichever options we want for it. Getting rid of the
> corresponding checks in wx_checks.cpp would be helpful, however.

Okay, I'll do that. Otherwise, those checks would probably
prevent us from using a debian wx package.


reply via email to

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