summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kotas <jkotas@microsoft.com>2016-01-03 16:12:21 -0800
committerJan Kotas <jkotas@microsoft.com>2016-01-03 16:12:21 -0800
commit215fb944857693e3bcc372d684b4ab2aa98d00cc (patch)
tree4692fbf3e73f6027dd81df25aa0441b0505beff1
parent8c7e7db8ca4f231b4b82c2c06990520efd2e7ee1 (diff)
parent44ce49211382594729a6801c45ccea457ac6452d (diff)
downloadcoreclr-215fb944857693e3bcc372d684b4ab2aa98d00cc.tar.gz
coreclr-215fb944857693e3bcc372d684b4ab2aa98d00cc.tar.bz2
coreclr-215fb944857693e3bcc372d684b4ab2aa98d00cc.zip
Merge pull request #2498 from taylorjonl/smartos
Fixed issue where files in /opt/local/include are not found and LTTng is required on SmartOS
-rw-r--r--CMakeLists.txt11
-rw-r--r--src/pal/src/configure.cmake24
2 files changed, 33 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 15bed4dd3b..f72780c8a7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -69,7 +69,16 @@ endif(CMAKE_SYSTEM_NAME STREQUAL NetBSD)
if(CMAKE_SYSTEM_NAME STREQUAL SunOS)
set(CLR_CMAKE_PLATFORM_UNIX 1)
- set(CLR_CMAKE_PLATFORM_UNIX_TARGET_AMD64 1)
+ EXECUTE_PROCESS(
+ COMMAND isainfo -n
+ OUTPUT_VARIABLE SUNOS_NATIVE_INSTRUCTION_SET
+ )
+ if(SUNOS_NATIVE_INSTRUCTION_SET MATCHES "amd64")
+ set(CLR_CMAKE_PLATFORM_UNIX_TARGET_AMD64 1)
+ set(CMAKE_SYSTEM_PROCESSOR "amd64")
+ else()
+ clr_unknown_arch()
+ endif()
set(CLR_CMAKE_PLATFORM_SUNOS 1)
endif(CMAKE_SYSTEM_NAME STREQUAL SunOS)
diff --git a/src/pal/src/configure.cmake b/src/pal/src/configure.cmake
index d130e14123..a210a8e055 100644
--- a/src/pal/src/configure.cmake
+++ b/src/pal/src/configure.cmake
@@ -9,7 +9,10 @@ include(CheckLibraryExists)
if(CMAKE_SYSTEM_NAME STREQUAL FreeBSD)
set(CMAKE_REQUIRED_INCLUDES /usr/local/include)
-elseif(NOT CMAKE_SYSTEM_NAME STREQUAL Darwin)
+elseif(CMAKE_SYSTEM_NAME STREQUAL SunOS)
+ set(CMAKE_REQUIRED_INCLUDES /opt/local/include)
+endif()
+if(NOT CMAKE_SYSTEM_NAME STREQUAL Darwin AND NOT CMAKE_SYSTEM_NAME STREQUAL FreeBSD)
set(CMAKE_REQUIRED_DEFINITIONS "-D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200809L")
endif()
@@ -941,6 +944,25 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL FreeBSD)
message(FATAL_ERROR "Cannot find libc on this system.")
endif()
+elseif(CMAKE_SYSTEM_NAME STREQUAL SunOS)
+ if(NOT HAVE_LIBUNWIND_H)
+ unset(HAVE_LIBUNWIND_H CACHE)
+ message(FATAL_ERROR "Cannot find libunwind. Try installing libunwind8 and libunwind8-dev (or the appropriate packages for your platform)")
+ endif()
+ if(NOT HAVE_LIBUUID_H)
+ unset(HAVE_LIBUUID_H CACHE)
+ message(FATAL_ERROR "Cannot find libuuid. Try installing uuid-dev or the appropriate packages for your platform")
+ endif()
+ set(DEADLOCK_WHEN_THREAD_IS_SUSPENDED_WHILE_BLOCKED_ON_MUTEX 0)
+ set(PAL_PTRACE "ptrace((cmd), (pid), (caddr_t)(addr), (data))")
+ set(PAL_PT_ATTACH PT_ATTACH)
+ set(PAL_PT_DETACH PT_DETACH)
+ set(PAL_PT_READ_D PT_READ_D)
+ set(PAL_PT_WRITE_D PT_WRITE_D)
+ set(JA_JP_LOCALE_NAME ja_JP_LOCALE_NOT_FOUND)
+ set(KO_KR_LOCALE_NAME ko_KR_LOCALE_NOT_FOUND)
+ set(ZH_TW_LOCALE_NAME zh_TW_LOCALE_NOT_FOUND)
+ set(HAS_FTRUNCATE_LENGTH_ISSUE 0)
else() # Anything else is Linux
if(NOT HAVE_LIBUNWIND_H)
unset(HAVE_LIBUNWIND_H CACHE)