[PATCH] byteorder: do not assume PowerPC is big-endian

Christof Schmitt cs at samba.org
Mon May 5 15:05:07 MDT 2014


On Mon, May 05, 2014 at 07:01:18PM +0200, David Disseldorp wrote:
> Hi Christof,
> 
> On Mon, 5 May 2014 09:17:12 -0700, Christof Schmitt wrote:
> 
> > i saw the bugzilla review request. Without having access to a power
> > system, i can only review the code. It looks correct, but i saw that
> > there is already a endianess check in buildtools/wafsamba/wscript:
> > 
> >     conf.CHECK_CODE('long one = 1; return ((char *)(&one))[0]',
> >                     execute=True,
> >                     define='WORDS_BIGENDIAN')
> > 
> > You could use the WORDS_BIGENDIAN define instead of importing ccan. Of
> > course, it the longterm it would be good to only have one endianess
> > check, maybe the ccan one.
> 
> Thanks for the pointer, I hadn't come across that check.
> My preference would still be to continue to use the lib/ccan/wscript
> endianness checks, as they first use the __BYTE_ORDER, __BIG_ENDIAN and
> __LITTLE_ENDIAN definitions before doing the runtime test. They also
> fail if endianness can't be determined.

After looking into this again, i agree that the ccan check looks better.
It also seems that you don't need the include for the endian.h. The
HAVE_BIG_ENDIAN is defined globally from wscript, so it is always
available.

Reviewed-by: Christof Schmitt <cs at samba.org>
for your patch without the include.

A follow-on patch could convert more places to use
HAVE_BIG/LITTLE_ENDIAN.

Christof


More information about the samba-technical mailing list