summaryrefslogtreecommitdiffstats
path: root/ipc/chromium/src/base/sys_info_posix.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ipc/chromium/src/base/sys_info_posix.cc')
-rw-r--r--ipc/chromium/src/base/sys_info_posix.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/ipc/chromium/src/base/sys_info_posix.cc b/ipc/chromium/src/base/sys_info_posix.cc
index 81ec78053..1f2cbdb13 100644
--- a/ipc/chromium/src/base/sys_info_posix.cc
+++ b/ipc/chromium/src/base/sys_info_posix.cc
@@ -121,7 +121,11 @@ std::wstring SysInfo::GetEnvVar(const wchar_t* var) {
// static
std::string SysInfo::OperatingSystemName() {
+#ifndef XP_SOLARIS
utsname info;
+#else
+ struct utsname info;
+#endif
if (uname(&info) < 0) {
NOTREACHED();
return "";
@@ -129,9 +133,17 @@ std::string SysInfo::OperatingSystemName() {
return std::string(info.sysname);
}
+// Solaris <sys/utsname.h> contains "extern struct utsname utsname;"
+// As a consequence, any use of utsname has to be preceded with struct on
+// Solaris. See Mozilla bugs 758483 and 1353332.
+
// static
std::string SysInfo::CPUArchitecture() {
+#ifndef XP_SOLARIS
utsname info;
+#else
+ struct utsname info;
+#endif
if (uname(&info) < 0) {
NOTREACHED();
return "";