< 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 >