blob: 6aeb2f68360646c4661ff52f221747ca3c88b2eb [file] [log] [blame]
Patrick Williamsb48b7b42016-08-17 15:04:38 -05001From d4a15ad82292ff6d772dcc631df98754d20be31b Mon Sep 17 00:00:00 2001
2From: Colin Walters <walters@verbum.org>
3Date: Tue, 18 Mar 2014 11:46:05 -0400
4Subject: [PATCH 2/5] Move JS_BYTES_PER_WORD out of config.h
5
6Instead define it in terms of the already extant GNU C extension
7__SIZEOF_POINTER__. This avoids multiarch conflicts when 32 and 64
8bit packages of js are co-installed.
9---
10
11Upstream-status: Pending
12
13 js/src/configure.in | 9 ---------
14 js/src/js-config.h.in | 1 -
15 js/src/jstypes.h | 12 ++++++++++++
16 3 files changed, 12 insertions(+), 10 deletions(-)
17
18diff --git a/js/src/configure.in b/js/src/configure.in
19index 15605b2..64c7606 100644
20--- a/js/src/configure.in
21+++ b/js/src/configure.in
22@@ -2345,15 +2345,6 @@ else
23 AC_MSG_RESULT(no)
24 fi
25
26-MOZ_SIZE_OF_TYPE(JS_BYTES_PER_WORD, void*, 4 8)
27-if test "$moz_cv_size_of_JS_BYTES_PER_WORD" -eq "4"; then
28- AC_DEFINE(JS_BITS_PER_WORD_LOG2, 5)
29-elif test "$moz_cv_size_of_JS_BYTES_PER_WORD" -eq "8"; then
30- AC_DEFINE(JS_BITS_PER_WORD_LOG2, 6)
31-else
32- AC_MSG_ERROR([Unexpected JS_BYTES_PER_WORD])
33-fi
34-
35 MOZ_ALIGN_OF_TYPE(JS_ALIGN_OF_POINTER, void*, 2 4 8 16)
36 MOZ_SIZE_OF_TYPE(JS_BYTES_PER_DOUBLE, double, 6 8 10 12 14)
37
38diff --git a/js/src/js-config.h.in b/js/src/js-config.h.in
39index 6889e00..4775420 100644
40--- a/js/src/js-config.h.in
41+++ b/js/src/js-config.h.in
42@@ -56,7 +56,6 @@
43 #undef JS_INT32_TYPE
44 #undef JS_INT64_TYPE
45 #undef JS_INTPTR_TYPE
46-#undef JS_BYTES_PER_WORD
47
48 /* Some mozilla code uses JS-friend APIs that depend on JS_METHODJIT being
49 correct. */
50diff --git a/js/src/jstypes.h b/js/src/jstypes.h
51index d0cf183..3e7928f 100644
52--- a/js/src/jstypes.h
53+++ b/js/src/jstypes.h
54@@ -24,6 +24,18 @@
55 #include "mozilla/Util.h"
56
57 #include "js-config.h"
58+#ifndef JS_BYTES_PER_WORD
59+#define JS_BYTES_PER_WORD __SIZEOF_POINTER__
60+#endif
61+#ifndef JS_BITS_PER_WORD_LOG2
62+#if JS_BYTES_PER_WORD == 8
63+#define JS_BITS_PER_WORD_LOG2 6
64+#elif JS_BYTES_PER_WORD == 4
65+#define JS_BITS_PER_WORD_LOG2 5
66+#else
67+#error Unhandled JS_BYTES_PER_WORD
68+#endif
69+#endif
70
71 /***********************************************************************
72 ** MACROS: JS_EXTERN_API
73--
741.9.3
75