Disable jit.
authorPeter Michael Green <plugwash@raspbian.org>
Tue, 20 Sep 2022 21:54:38 +0000 (21:54 +0000)
committerPeter Michael Green <plugwash@raspbian.org>
Thu, 22 Sep 2022 21:35:22 +0000 (21:35 +0000)
debian/changelog
debian/rules
js/moz.configure
js/src/jit/GenerateAtomicOperations.py
js/src/jit/shared/AtomicOperations-feeling-lucky-gcc.h

index 7d29d0d81d2d875ea5353ec1b668b1a07f4bca95..787c38b1c8bbb762a28d76979deb108928ac0fc0 100644 (file)
@@ -21,7 +21,14 @@ firefox-esr (102.2.0esr-1+rpi1) bookworm-staging; urgency=medium
     definitions error.
 
   [changes brought over from thunderbird 1:102.1.1-1+rpi1 by Peter Michael Green]
-   * Disable more armv7/neon stuff.
+  * Disable more armv7/neon stuff.
+
+  [changes introduced in 102.2.0esr-1+rpi1 by Peter Michael Green]
+  * Disable jit (or at least try to)
+    + Pass disable-jit from debian/rules
+    + Nerf jit detection in s/moz.configure
+    + Disable arm atomics (which require armv7) in js/src/jit/GenerateAtomicOperations.py
+    + Remove architecture restrictions in jit/shared/AtomicOperations-feeling-lucky-gcc.h
 
  -- Peter Michael Green <plugwash@raspbian.org>  Fri, 16 Sep 2022 18:44:17 +0000
 
index 6a4d868ea1f4d098130a297dd3af75b539337292..03b9475d17d83a89b55bece42eb4f2dd9e6fc824 100755 (executable)
@@ -148,9 +148,9 @@ ifeq (default,$(origin CXX))
 CXX := g++
 endif
 
-ifneq (,$(filter mips mipsel,$(DEB_HOST_ARCH)))
+#ifneq (,$(filter mips mipsel,$(DEB_HOST_ARCH)))
 CONFIGURE_FLAGS += --disable-jit
-endif
+#endif
 
 CXXFLAGS = $(CFLAGS)
 RUSTFLAGS = --remap-path-prefix=$(CURDIR)=.
index 7a241cac76d81c25ddd46b901d525f5c39e36b91..a040b58407f94d2c25b6408ce7691a3a0f90621d 100644 (file)
@@ -154,18 +154,18 @@ set_define("ENABLE_RECORD_TUPLE", enable_record_tuple)
 # =======================================================
 @depends(target, "--enable-record-tuple")
 def jit_default(target, enable_record_tuple):
-    if enable_record_tuple:
-        return False
-    if target.cpu in (
-        "x86",
-        "x86_64",
-        "arm",
-        "aarch64",
-        "mips32",
-        "mips64",
-        "loongarch64",
-    ):
-        return True
+    #if enable_record_tuple:
+    #    return False
+    #if target.cpu in (
+    #    "x86",
+    #    "x86_64",
+    #    "arm",
+    #    "aarch64",
+    #    "mips32",
+    #    "mips64",
+    #    "loongarch64",
+    #):
+    #    return True
     return False
 
 
index d8a38a0bbbce4a5e81876793501bd78dc4094758..63878e99a74c660630ec7879afad6e1213b12fe1 100644 (file)
@@ -32,13 +32,13 @@ def gen_seqcst(fun_name):
             }""" % {
             "fun_name": fun_name,
         }
-    if cpu_arch == "arm":
-        return r"""
-            INLINE_ATTR void %(fun_name)s() {
-                asm volatile ("dmb sy\n\t" ::: "memory");
-            }""" % {
-            "fun_name": fun_name,
-        }
+    #if cpu_arch == "arm":
+    #    return r"""
+    #        INLINE_ATTR void %(fun_name)s() {
+    #            asm volatile ("dmb sy\n\t" ::: "memory");
+    #        }""" % {
+    #        "fun_name": fun_name,
+    #    }
     raise Exception("Unexpected arch")
 
 
@@ -721,7 +721,7 @@ namespace jit {
 
 def generate_atomics_header(c_out):
     contents = ""
-    if cpu_arch in ("x86", "x86_64", "arm", "aarch64"):
+    if cpu_arch in ("x86", "x86_64", "aarch64"):
         contents += "#define JS_HAVE_GENERATED_ATOMIC_OPS 1"
 
         # `fence` performs a full memory barrier.
index 2e384337a312fe54c99208bc772253b363adaaf7..e532d8813dc26e192308ae77be92638f07aaa078 100644 (file)
 
 // Explicitly exclude tier-1 platforms.
 
-#if (defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || \
-     defined(_M_IX86) || defined(__arm__) || defined(__aarch64__))
-#  error "Do not use on a tier-1 platform where inline assembly is available"
-#endif
+//#if (defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || \
+//     defined(_M_IX86) || defined(__arm__) || defined(__aarch64__))
+//#  error "Do not use on a tier-1 platform where inline assembly is available"
+//#endif
 
 #if !(defined(__clang__) || defined(__GNUC__))
 #  error "This file only for gcc/Clang"