Dear Joakim Tjernlund, In message <of918aa866.3ed427eb-onc12576c7.005cbee4-c12576c7.005cf...@transmode.se> you wrote: > > > I have no idea how it is actually done in the kernel code... but gcc > > defines it: > > > > gcc -dM -E -x c - <<<'' | grep ENDIAN > > #define __BIG_ENDIAN__ 1 > > #define _BIG_ENDIAN 1 > > That doesn't define __BYTE_ORDER. Try the same gcc command > on a file that #includes <stdlib.h> and you will get both > __BIG_ENDIAN and __LITTLE_ENDIAN
For me this appears to work: On x86: $ echo '#include <stdlib.h>' | gcc -dM -E -x c - | grep ENDIAN #define _ENDIAN_H 1 #define PDP_ENDIAN __PDP_ENDIAN #define __PDP_ENDIAN 3412 #define BIG_ENDIAN __BIG_ENDIAN #define __BYTE_ORDER __LITTLE_ENDIAN #define __LITTLE_ENDIAN 1234 #define __BIG_ENDIAN 4321 #define LITTLE_ENDIAN __LITTLE_ENDIAN On PowerPC: $ echo '#include <stdlib.h>' | gcc -dM -E -x c - | grep ENDIAN #define __BIG_ENDIAN__ 1 #define __PDP_ENDIAN 3412 #define __LITTLE_ENDIAN 1234 #define BIG_ENDIAN __BIG_ENDIAN #define _BIG_ENDIAN 1 #define __BYTE_ORDER __BIG_ENDIAN #define _ENDIAN_H 1 #define __BIG_ENDIAN 4321 #define PDP_ENDIAN __PDP_ENDIAN #define LITTLE_ENDIAN __LITTLE_ENDIAN In both cases __BYTE_ORDER is set to a sane value. Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de Copy from one, it's plagiarism; copy from two, it's research. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev