commit c104d9b Author: Landry Breuil Date: Mon Jan 9 17:32:00 2012 -0600 Bug 714312 - Use to get endianess on BSD systems, fixing the BSD build. r=ted --HG-- extra : rebase_source : 8b418bdb2d713093d138ffed20bf1630c05f396b --- js/src/configure.in | 5 +++++ js/src/js-config.h.in | 4 ++++ js/src/jscpucfg.h | 17 +++++++++++++++++ 3 files changed, 26 insertions(+) diff --git js/src/configure.in js/src/configure.in index 164c896..361b29e 100644 --- js/src/configure.in +++ js/src/configure.in @@ -2934,6 +2934,11 @@ if test "$ac_cv_header_endian_h" = yes; AC_DEFINE(JS_HAVE_ENDIAN_H) fi +AC_CHECK_HEADERS(machine/endian.h) +if test "$ac_cv_header_machine_endian_h" = yes; then + AC_DEFINE(JS_HAVE_MACHINE_ENDIAN_H) +fi + AC_CHECK_HEADERS(sys/isa_defs.h) if test "$ac_cv_header_sys_isa_defs_h" = yes; then AC_DEFINE(JS_HAVE_SYS_ISA_DEFS_H) diff --git js/src/js-config.h.in js/src/js-config.h.in index fb009fa..402262e 100644 --- js/src/js-config.h.in +++ js/src/js-config.h.in @@ -59,6 +59,10 @@ useable. See jscpucfg.h. */ #undef JS_HAVE_ENDIAN_H +/* Define to 1 if the header is present and + useable. See jscpucfg.h. */ +#undef JS_HAVE_MACHINE_ENDIAN_H + /* Define to 1 if the header is present and useable. See jscpucfg.h. */ #undef JS_HAVE_SYS_ISA_DEFS_H diff --git js/src/jscpucfg.h js/src/jscpucfg.h index dd32bce..5fd8415 100644 --- js/src/jscpucfg.h +++ js/src/jscpucfg.h @@ -92,6 +92,23 @@ # error "endian.h does not define __BYTE_ORDER. Cannot determine endianness." # endif +/* BSDs */ +#elif defined(JS_HAVE_MACHINE_ENDIAN_H) +# include +# include + +# if defined(_BYTE_ORDER) +# if _BYTE_ORDER == _LITTLE_ENDIAN +# define IS_LITTLE_ENDIAN 1 +# undef IS_BIG_ENDIAN +# elif _BYTE_ORDER == _BIG_ENDIAN +# undef IS_LITTLE_ENDIAN +# define IS_BIG_ENDIAN 1 +# endif +# else /* !defined(_BYTE_ORDER) */ +# error "machine/endian.h does not define _BYTE_ORDER. Cannot determine endianness." +# endif + #elif defined(JS_HAVE_SYS_ISA_DEFS_H) # include