On Fri, Aug 15, 2014 at 06:19:23PM -0400, Beman Dawes wrote:
On Fri, Aug 15, 2014 at 1:51 PM, Lars Viklund
wrote: On Fri, Aug 15, 2014 at 11:36:40AM -0400, Beman Dawes wrote:
If anyone has access to a big-endian platform with a modern C++ compiler, please, please run the endian test suite and report the results. All testing and use in recent years has been on little-endian platforms, so big-endian platform testing is a worry.
I gave it a try with a 1.56 source tree and Endian checked out at commit 49866e07842e4b2b9c2d8e76b2c7fb3a61a1bdd2 on the three big-endian configurations I had handy:
sparc64 FreeBSD 10.0-RELEASE with their stock GCC 4.2.1; powerpc AIX 5.3 with our own GCC 4.9.1; powerpc AIX 5.3 with IBM XL C/C++ V11.1.
'converter_test' fails across all three, see attached log files.
These four test cases were failing for all three compilers:
converter_test.cpp(225): test 'be::htobe(native) == little' failed in function '<unnamed>::test<short>()': '-3838' != '753' converter_test.cpp(226): test 'be::htole(native) == big' failed in function '<unnamed>::test<short>()': '753' != '-3838' converter_test.cpp(232): test 'x == little' failed in function '<unnamed>::test<short>()': '-3838' != '753' converter_test.cpp(233): test 'x == big' failed in function '<unnamed>::test<short>()': '753' != '-3838'
You can check me, but I think I had the big/little results reversed. I've pushed up a fix on the develop branch.
The tests are now green on all three setups, except for the XL C++ one that doesn't link right. Also did a sanity check on little-endian amd64 Ubuntu 14.04, just to verify that nothing else broke.
XLC appears to additionally fail to link 'endian_operations_test', but I don't know if you consider it a generally working compiler :)
I'd need help from a platform expert on that one. So I'm going to ignore it unless someone steps forward.
There is also a warning message which I will check if it shows up on other compilers.
I believe I'm slightly behind on compiler updates on the AIX machine, but the other tests and the success of our GCC 4.9.1 gives me confidence that the code and tests ought to do what they should. IBM XL C/C++ for AIX, V11.1 (5724-X13) Version: 11.01.0000.0013 Some day after the vacation I guess I should find our AIX wrangler and get him to install 11.01.000.0018 as we appear to be a year and a half out of date. -- Lars Viklund | zao@acc.umu.se