deps: fix v8 armv6 run-time detection
authorBen Noordhuis <info@bnoordhuis.nl>
Thu, 22 Jan 2015 20:50:35 +0000 (21:50 +0100)
committerBen Noordhuis <info@bnoordhuis.nl>
Thu, 22 Jan 2015 22:07:53 +0000 (23:07 +0100)
The elf_platform suffix in /proc/cpuinfo moved to the model name field
in Linux 3.8.

Out-of-tree patch pending https://codereview.chromium.org/867713003/

Fixes: https://github.com/iojs/io.js/issues/283
PR-URL: https://github.com/iojs/io.js/pull/559
Reviewed-By: Fedor Indutny <fedor@indutny.com>
deps/v8/src/base/cpu.cc

index 56e1c46..daf3302 100644 (file)
@@ -438,7 +438,7 @@ CPU::CPU()
     //
     // See http://code.google.com/p/android/issues/detail?id=10812
     //
-    // We try to correct this by looking at the 'elf_format'
+    // We try to correct this by looking at the 'elf_platform'
     // field reported by the 'Processor' field, which is of the
     // form of "(v7l)" for an ARMv7-based CPU, and "(v6l)" for
     // an ARMv6-one. For example, the Raspberry Pi is one popular
@@ -450,6 +450,15 @@ CPU::CPU()
       }
       delete[] processor;
     }
+
+    // elf_platform moved to the model name field in Linux v3.8.
+    if (architecture_ == 7) {
+      char* processor = cpu_info.ExtractField("model name");
+      if (HasListItem(processor, "(v6l)")) {
+        architecture_ = 6;
+      }
+      delete[] processor;
+    }
   }
 
   // Try to extract the list of CPU features from ELF hwcaps.