summaryrefslogtreecommitdiff
path: root/www/libxul/files/patch-bug714312
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>