[pypy-commit] pypy default: fallback to ARMv6 instead of crashing if we cannot detect the architecture at all (i.e running in a qemu-chroot)

bivab noreply at buildbot.pypy.org
Fri Apr 19 19:38:29 CEST 2013


Author: David Schneider <david.schneider at picle.org>
Branch: 
Changeset: r63509:5ce89761d04a
Date: 2013-04-19 19:37 +0200
http://bitbucket.org/pypy/pypy/changeset/5ce89761d04a/

Log:	fallback to ARMv6 instead of crashing if we cannot detect the
	architecture at all (i.e running in a qemu-chroot)

diff --git a/rpython/jit/backend/arm/detect.py b/rpython/jit/backend/arm/detect.py
--- a/rpython/jit/backend/arm/detect.py
+++ b/rpython/jit/backend/arm/detect.py
@@ -1,7 +1,6 @@
 import os
 
 from rpython.translator.tool.cbuild import ExternalCompilationInfo
-from rpython.rlib.clibffi import FFI_DEFAULT_ABI, FFI_SYSV, FFI_VFP
 from rpython.rtyper.tool import rffi_platform
 from rpython.translator.platform import CompilationError
 from rpython.rlib.debug import debug_print, debug_start, debug_stop
@@ -46,9 +45,11 @@
     # "Processor       : ARMv%d-compatible processor rev 7 (v6l)"
     i = buf.find('ARMv')
     if i == -1:
-        raise ValueError("Unknown Processor entry")
-
-    n = int(buf[i + 4])
+        n = 6
+        debug_print("Could not detect architecture version, "
+                    "falling back to", "ARMv%d" % n)
+    else:
+        n = int(buf[i + 4])
 
     if n < 6:
         raise ValueError("Unsupported ARM architecture version")
diff --git a/rpython/jit/backend/arm/test/test_detect.py b/rpython/jit/backend/arm/test/test_detect.py
--- a/rpython/jit/backend/arm/test/test_detect.py
+++ b/rpython/jit/backend/arm/test/test_detect.py
@@ -3,7 +3,32 @@
 from rpython.jit.backend.arm.detect import detect_arch_version
 
 cpuinfo = "Processor : ARMv%d-compatible processor rev 7 (v6l)"""
-
+cpuinfo2 = """processor       : 0
+vendor_id       : GenuineIntel
+cpu family      : 6
+model           : 23
+model name      : Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz
+stepping        : 10
+microcode       : 0xa07
+cpu MHz         : 2997.000
+cache size      : 6144 KB
+physical id     : 0
+siblings        : 2
+core id         : 0
+cpu cores       : 2
+apicid          : 0
+initial apicid  : 0
+fpu             : yes
+fpu_exception   : yes
+cpuid level     : 13
+wp              : yes
+flags           : fpu vme ...
+bogomips        : 5993.08
+clflush size    : 64
+cache_alignment : 64
+address sizes   : 36 bits physical, 48 bits virtual
+power management:
+"""
 
 def write_cpuinfo(info):
     filepath = udir.join('get_arch_version')
@@ -20,5 +45,4 @@
     assert detect_arch_version(write_cpuinfo(cpuinfo % 8)) == 7
     py.test.raises(ValueError,
             'detect_arch_version(write_cpuinfo(cpuinfo % 5))')
-    py.test.raises(ValueError,
-            'detect_arch_version(write_cpuinfo("Lorem ipsum dolor sit amet, consectetur"))')
+    assert detect_arch_version(write_cpuinfo(cpuinfo2)) == 6


More information about the pypy-commit mailing list