blob: 114144d18388d70bee2eb67277d02e757c4b82b3 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
commit c104d9b
Author: Landry Breuil <landry@openbsd.org>
Date: Mon Jan 9 17:32:00 2012 -0600
Bug 714312 - Use <machine/endian.h> 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 <machine/endian.h> header is present and
+ useable. See jscpucfg.h. */
+#undef JS_HAVE_MACHINE_ENDIAN_H
+
/* Define to 1 if the <sys/isa_defs.h> 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 <sys/types.h>
+# include <machine/endian.h>
+
+# 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 <sys/isa_defs.h>
|