Description
Cut from #4173.
Given below is a high-level list of work items for Solaris x86-64 port:
-
Native configurations (Add native configurations for SunOS #34756)
-
CoreCLR native components (Port CoreCLR to SunOS #35173)
awaiting next release of libunwind https://github.com/libunwind/libunwind/releases/tag/v1.5-rc1 or higher with changes from Illumos fixes libunwind/libunwind#171, for Solaris support.- upstream PR was merged, libunwind is updated to 1.5 by @sdmaclea in Libunwind1.5rc2 #36027.
-
PAL tests
- one test is failing is due to paltest_pal_sxs_test1 failed on SmartOS x64 #35362.
- another one is related to raising thread priority, after lowering it from the same value as a non-root user. this either requires implementation using
priocntl(2)
directly for SunOS targets, or wait for https://www.illumos.org/issues/4963.
-
Libraries native components (Port Native libraries to SunOS #34867)
- on SmartOS x86_64 with gcc 7x:
# from runtime repo root ./src/libraries/Native/build-native.sh -gcc
- on SmartOS x86_64 with gcc 7x:
-
Mono native components (Enable mono cross-build on SunOS-like OS #37560)
- Full mono (https://github.com/mono/mono) is already available on Solaris, requires some configurations for netcore mono in this repository.
-
Installer native components (Define dirent d_type for Solaris based OS #34263)
- on SmartOS x86_64 with gcc 7x:
# from runtime repo root src/installer/corehost/build.sh -commithash $(git rev-parse HEAD) -gcc \ -apphostver 5.0.0-dev -hostver 5.0.0-dev -fxrver 5.0.0-dev -policyver 5.0.0-dev
- on SmartOS x86_64 with gcc 7x:
-
MSBuild configurations
-
CoreCLR managed components (Add configurations for SunOS CoreCLR managed build #36266)
-
Libraries managed components
- Most of the partial classes can be shared with Linux (e.g. by moving it under Unix names) and modifying msbuild configurations.
-
Installer managed components
-
CoreCLR tests (Fix CoreCLR test build for SunOS #37824)
-
Libraries tests
-
Mono tests
-
Installer tests
-
Packaging configurations
-
RID (Implement RID for SunOS-derived operating systems #37016)
-
Cross compilation on Linux (Add illumos setup to build-rootfs.sh arcade#5584, Add an image to build runtime on illumos dotnet-buildtools-prereqs-docker#324, Add support for illumos cross-compilation #37753)
- as done for other operating systems, e.g. FreeBSD: https://github.com/dotnet/arcade/blob/3443768/eng/common/cross/build-rootfs.sh#L243.
- script gets mirrored at https://github.com/dotnet/runtime/blob/master/eng/common/cross/build-rootfs.sh.
-
CI hook
- similar to add images to build runtime on FreeBSD dotnet-buildtools-prereqs-docker#277 and add FreeBSD build #34521
- external (GitHub Actions) CI has set up using the official illumos docker image: https://github.com/am11/runtime/blob/feature/sunos/ci/.github/workflows/main.yml
- example run: https://github.com/am11/runtime/actions/runs/145127885
- on tag push, it creates a GitHub release and upload artifacts (files under
Shipping
directory), e..g. https://github.com/am11/runtime/releases/tag/5.0.0-dev.1