illumos: first class support
The illumos operating system is a descendant of the OpenSolaris project, split off when Oracle created their proprietary Solaris 11 fork more than a decade ago. At present, CMake essentially treats illumos as if it were Solaris, which is at this point not a tremendously helpful state of affairs as both platforms are entirely separately developed and continue to diverge more with each passing year. We would like to add first class support for recognising illumos systems to CMake so that we can stop patching individual source bases!
I think we would want to have at least the following changes to variables:
- CMAKE_HOST_ILLUMOS set to true
-
CMAKE_SYSTEM_NAME set to illumos (as per
uname -o
) instead of the SunOS that pops out ofuname -s
-
CMAKE_SYSTEM_VERSION set to 1 instead of the 5.11 that pops out of
uname -r
-
CMAKE_HOST_SYSTEM_PROCESSOR set to the successful output of
isainfo -n
instead ofuname -p
oruname -m
; this would mean the value would be amd64 on 64-bit x86 systems, rather than i386. The in-progress ARM port will report aarch64 there as well.
It would also be good to be able to add libsocket and libnsl to the default shared library dependency list for C/C++ software, if possible. I am not as familiar with this part of CMake, but we need those extra libraries to get access to entrypoints that are commonly found directly in libc on some other UNIX systems, like socket(3SOCKET) or gethostbyname(3NSL).