[libc] Allow for externally-defined LITTLE_ENDIAN and BIG_ENDIAN constants

When building the Linux userspace binaries, the external system
headers may have already defined values for the __LITTLE_ENDIAN and
__BIG_ENDIAN constants.

Fix by retaining the existing values if already defined, since the
actual values of these constants do not matter.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
pull/448/head
Michael Brown 2021-07-15 13:46:34 +01:00
parent 2690f73096
commit 8d08300ad9
1 changed files with 4 additions and 0 deletions

View File

@ -8,14 +8,18 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
* Little-endian systems should define BYTE_ORDER as LITTLE_ENDIAN. * Little-endian systems should define BYTE_ORDER as LITTLE_ENDIAN.
* This constant is intended to be used only at compile time. * This constant is intended to be used only at compile time.
*/ */
#ifndef __LITTLE_ENDIAN
#define __LITTLE_ENDIAN 0x44332211UL #define __LITTLE_ENDIAN 0x44332211UL
#endif
/** Constant representing big-endian byte order /** Constant representing big-endian byte order
* *
* Big-endian systems should define BYTE_ORDER as BIG_ENDIAN. * Big-endian systems should define BYTE_ORDER as BIG_ENDIAN.
* This constant is intended to be used only at compile time. * This constant is intended to be used only at compile time.
*/ */
#ifndef __BIG_ENDIAN
#define __BIG_ENDIAN 0x11223344UL #define __BIG_ENDIAN 0x11223344UL
#endif
#include "bits/endian.h" #include "bits/endian.h"