[Vm-dev] FloatMathPlugin: patch for squeak 4.19.2 fdlibm.h header
David T. Lewis
lewis at mail.msen.com
Sun Dec 13 18:26:49 UTC 2020
On Sun, Dec 13, 2020 at 07:03:47PM +0100, stes at PANDORA.BE wrote:
>
>
> In the cmake.config
>
> platforms/unix/plugins/FloatMathPlugin/config.cmake
>
> it says:
>
>
> # fdlibm.h does not recognize x86_64, so set endianness here for all platforms.
>
> TEST_BIG_ENDIAN (IS_BIG_ENDIAN)
> IF (NOT IS_BIG_ENDIAN)
> PLUGIN_DEFINITIONS (-D__LITTLE_ENDIAN=1)
> ENDIF ()
>
> So basically the cmake is testing IS_BIG_ENDIAN and if not so,
> then it defines __LITTLE_ENDIAN.
>
> That's fine but the problem is that the old code in the fdlibm.h header
> is #define __LITTLE_ENDIAN which (1) is a duplicate def and (2) defines
> to a different value (because it does not define it =1).
>
> So assuming you want to keep the definition at the cmake level (for x64),
> then in the header file it should be conditional
>
> #ifndef __LITTLE_ENDIAN (if not already defined on the command line)
>
>
> David Stes
>
Oh, that is good, the config.cmake is already handling it. I like your idea
of using #ifndef __LITTLE_ENDIAN to prevent redefinition in fdlibm.h. It is
a minimal change to the original Sun code and it will have no adverse effect
on other platforms.
I tried this on my Linux box. It compiles without warnings, and all of the
FloatMathPluginTests tests are green (these are in the VMMaker package, not
Squeak trunk).
It's a trivial change but I'm attaching a copy of the file I used for reference.
If you can confirm that this does what is needed on Solaris, I'll push the
update to SVN for you.
Thanks!
Dave
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fdlibm.h
Type: text/x-chdr
Size: 6283 bytes
Desc: not available
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20201213/bd8fa0b7/attachment.h>
More information about the Vm-dev
mailing list