[erlang-patches] Float endianness in 15B

Michael Sperber sperber@REDACTED
Tue Jul 17 10:14:38 CEST 2012


Lukas Larsson <lukas@REDACTED> writes:

> Sorry for the long delay, we just now got our ARM machines
> working. Unfortunately it does not seem to use PDP endian floats. So I
> hope that it is ok with you to do some more work on your end.

Of course.  Thanks for looking into this!

> Does the compiler you use set __BYTE_ORDER to __PDP_ENDIAN in
> endian.h?

No, it's __LITTLE_ENDIAN.  And that's the correct setting for integers.
The problem is that the information from endian.h is not enough to
determine float endianness.

> If so could you update the ac function to check that first? 
> If we can rely on the define it will make the check work better when
> cross compiling.

Good point.  (Especially as we used to cross-compile before switching to
building under qemu.)  I'm afraid I don't know a good solution.  Maybe
we do need to look at the architecture name after all.  I'd be happy to
code up an alternative if we can agree on the direction.

> Also it would be great to have a testcase for this, would you mind a
> small testcase to erts/emulator/test/float_SUITE.erl ?

Good point.  I believe the floating-point test suite didn't pass the
existing tests, but of course that was coincidental.  Here's the test
suite:

https://github.com/mikesperber/otp/commit/cab9edd0a6f1fad2c3ec9661b39627756ad9d2ba

Please let me if there's anything else I can do to move this along.

-- 
Regards,
Mike



More information about the erlang-patches mailing list