[systemd-devel] [PATCH] architecture: fix building for big-endian PowerPC with gcc

Michael Olbrich m.olbrich at pengutronix.de
Fri Jul 11 07:02:03 PDT 2014


On Fri, Jul 11, 2014 at 03:27:56PM +0200, Lennart Poettering wrote:
> On Fri, 11.07.14 15:04, Michael Olbrich (m.olbrich at pengutronix.de) wrote:
> 
> > gcc does not define WORDS_BIGENDIAN for big-endian PowerPC. It defines
> > __BIG_ENDIAN__ instead. So also check for __BIG_ENDIAN__ to determine if
> > the system is big-endian.
> 
> Hmm, the sources currently use three different ways to detect endianess:
> 
> 1) WORDS_BIGENDIAN (which appears to be an autoconf thing actually,
>    enabled via AC_C_BIGENDIAN, which we never call currently)
> 2) __BTYE_ORDER == __BIG_ENDIAN which appears to be be defined in
>    endian.h always by glibc
> 3) __BIG_ENDIAN__ appears to be quite common too? gcc thing?
> 
> Also this:
> 
> http://sourceforge.net/p/predef/wiki/Endianness/
> 
> We should probably stick to one of these things. Probably #2 or #3...
> 
> I can't find any normative documentation about these things. Given that
> the #2 is at least unconditional part of glibc, I'd say to convert
> everything to that. Would that work for you on ppc-be too?

Yes that's defined correctly.

Michael

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |


More information about the systemd-devel mailing list