--- a/hotspot/src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp Mon Jul 30 09:49:25 2012 -0700
+++ b/hotspot/src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp Wed Aug 01 14:10:32 2012 -0700
@@ -201,13 +201,23 @@
impl[i] = (char)toupper((uint)impl[i]);
if (strstr(impl, "SPARC64") != NULL) {
features |= sparc64_family_m;
+ } else if (strstr(impl, "SPARC-M") != NULL) {
+ // M-series SPARC is based on T-series.
+ features |= (M_family_m | T_family_m);
} else if (strstr(impl, "SPARC-T") != NULL) {
features |= T_family_m;
if (strstr(impl, "SPARC-T1") != NULL) {
features |= T1_model_m;
}
} else {
- assert(strstr(impl, "SPARC") != NULL, "should be sparc");
+ if (strstr(impl, "SPARC") == NULL) {
+#ifndef PRODUCT
+ // kstat on Solaris 8 virtual machines (branded zones)
+ // returns "(unsupported)" implementation.
+ warning("kstat cpu_info implementation = '%s', should contain SPARC", impl);
+#endif
+ implementation = "SPARC";
+ }
}
free((void*)impl);
break;