I hope a I have a "leap forward" On 7/30/2018 11:39 AM, Ævar Arnfjörð Bjarmason wrote: > Perhaps it's worth taking a step back here and thinking about whether > this whole thing is unworkable. It was hard enough to get this to work > on the combination of Linux, *BSD and Solaris, but I suspect we'll run > into increasingly obscure platforms where this is hard or impossible > (AIX, HP/UX etc.) While I still cannot say for HP/UX it does seem there is a potential solution based on the status for _LITTLE_ENDIAN and _BIG_ENDIAN. At least, gcc on POWER and xlc on POWER provides one or the other - and my hope is that gcc on other platforms also provides them. For "other" compilers that do not provide them - a modification to CFLAGS to define one or the other should make "make" work. Details (note - I am not a programmer, so by definition at least one of my "macros" will be wrong :) AIX and xlc root@x066:[/]xlc -qshowmacros -E /dev/null | grep -i endi 1506-297 (S) Unable to open input file null. A file or directory in the path name does not exist.. #define __HHW_BIG_ENDIAN__ 1 #define __BIG_ENDIAN__ 1 #define __THW_BIG_ENDIAN__ 1 #define _BIG_ENDIAN 1 On SLES12 (le) and xlc suse12test:~/images/littleEndian/sles # xlc -qshowmacros -dM -E x.c | grep -i endi #define _LITTLE_ENDIAN 1 #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ #define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ #define __LITTLE_ENDIAN__ 1 #define __ORDER_BIG_ENDIAN__ 4321 #define __ORDER_LITTLE_ENDIAN__ 1234 #define __ORDER_PDP_ENDIAN__ 3412 #define __VEC_ELEMENT_REG_ORDER__ __ORDER_LITTLE_ENDIAN__ Based on what I can see on gcc on POWER and xlc on POWER I think an approach (simplified) can be: #if undefined(_BIG_ENDIAN) && undef(_LITTLE_ENDIAN) #error "one of _BIG_ENDIAN or _LITTLE_ENDIAN must be defined. Try adding the correct value to CFLAGS" #else defined(_BIG_ENDIAN) && defined(_LITTLE_ENDIAN) #error "Only one of _BIG_ENDIAN and _LITTLE_ENDIAN may be defined, not both" #endif And then logic based on the value set. This should also make cross-compile possible by unsetting an incorrect default and setting the correct value. p.s. Is there a setting I need to set somewhere so I receive a copy of the email sent after it is received by the list. I could send myself a copy, but I much prefer it comes from the maillist - as verification it was received.