On Fri, Aug 15, 2014 at 1:51 PM, Lars Viklund
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.
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. Thanks, this has been a great help! --Beman