< prev index next >

src/hotspot/os/bsd/os_bsd.cpp

Print this page

        

*** 1534,1558 **** char os[100]; size_t size = sizeof(os); int mib_kern[] = { CTL_KERN, KERN_OSTYPE }; if (sysctl(mib_kern, 2, os, &size, NULL, 0) < 0) { #ifdef __APPLE__ ! strncpy(os, "Darwin", sizeof(os)); #elif __OpenBSD__ ! strncpy(os, "OpenBSD", sizeof(os)); #else ! strncpy(os, "BSD", sizeof(os)); #endif } char release[100]; size = sizeof(release); int mib_release[] = { CTL_KERN, KERN_OSRELEASE }; if (sysctl(mib_release, 2, release, &size, NULL, 0) < 0) { ! // if error, leave blank ! strncpy(release, "", sizeof(release)); } snprintf(buf, buflen, "%s %s", os, release); } void os::print_os_info_brief(outputStream* st) { os::Posix::print_uname_info(st); --- 1534,1574 ---- char os[100]; size_t size = sizeof(os); int mib_kern[] = { CTL_KERN, KERN_OSTYPE }; if (sysctl(mib_kern, 2, os, &size, NULL, 0) < 0) { #ifdef __APPLE__ ! strncpy(os, "Darwin", sizeof(os)); #elif __OpenBSD__ ! strncpy(os, "OpenBSD", sizeof(os)); #else ! strncpy(os, "BSD", sizeof(os)); #endif } char release[100]; size = sizeof(release); int mib_release[] = { CTL_KERN, KERN_OSRELEASE }; if (sysctl(mib_release, 2, release, &size, NULL, 0) < 0) { ! // if error, leave blank ! strncpy(release, "", sizeof(release)); } + + #ifdef __APPLE__ + char osproductversion[100]; + size_t sz = sizeof(osproductversion); + int ret = sysctlbyname("kern.osproductversion", osproductversion, &sz, NULL, 0); + if (ret == 0) { + char build[100]; + size = sizeof(build); + int mib_build[] = { CTL_KERN, KERN_OSVERSION }; + if (sysctl(mib_build, 2, build, &size, NULL, 0) < 0) { + snprintf(buf, buflen, "%s %s, macOS %s", os, release, osproductversion); + } else { + snprintf(buf, buflen, "%s %s, macOS %s (%s)", os, release, osproductversion, build); + } + } else + #endif snprintf(buf, buflen, "%s %s", os, release); } void os::print_os_info_brief(outputStream* st) { os::Posix::print_uname_info(st);
< prev index next >