-
Notifications
You must be signed in to change notification settings - Fork 347
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update illumos cross rootfs to fix CoreCLR PAL test #14978
Conversation
Currently the script uses an illumos sysroot from 2018 while downloading the latest available packages from pkgsrc. These packages are currently built on a newer illumos from 2021 that supports GCC's stack protector. When using this rootfs to build, we get error like this: > .tools/rootfs/x64/x86_64-sun-solaris2.10/bin/ld: .tools/rootfs/x64/lib/libz.so: undefined reference to '__stack_chk_fail@ILLUMOS_0.37' This fixes the mismatch by using an older set of packages from 2019.
This fixes the paltest exception_handling/pal_sxs/test1. It was crashing when throwing the PAL_SEHException. The C++ runtime was able to find EH data for ThrowExceptionHelper but not for FailingFunction. These versions match the versions used in OpenIndiana currently.
Assuming you tested it by deleting the existing |
I did most of testing in a non containerized build. I ran the PAL tests and the System.Runtime.Tests from libraries. I also confirmed that I can build the pal tests in container. I used the following steps: First build the rootfs on my Ubuntu 22.04 machine:
Then I put this Dockerfile in .tools/ : FROM mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-cross-illumos
RUN rm -r /crossrootfs/
COPY rootfs/x64 /crossrootfs/x64 Built my own image from the .tools directory: docker build . -t austin-cross-illumos Then used my new image to build the paltests from the root of the runtime repo:
These PAL tests passed on OpenIndiana (save the tests that were failing before this change: paltest_vsnprintf_test4 and paltest_duplicatehandle_test7). |
Thank you! I think this is enough for testing. |
I can answer that. We have several versions of clang delivered on OmniOS and OpenIndiana (OI). Notably "lldb" is missing (I'm working on that as I have time). |
Yup that's one of the main attraction since libSOS gdb support is primarily/untested (dotnet/diagnostics#272 (comment)). |
Looks like you should squash. Otherwise LGTM. I don't see a "review" button... |
Squash is enabled on merge for maintainers. None of us work for Microsoft (maintainers of github.com/dotnet). |
cc @akoeplinger |
Thank you! |
Each commit description contains details about the changes; here is a summary:
PAL_SEHException
in the CoreCLR PAL testpaltest_pal_sxs_test1
. These versions match those used in OpenIndiana 2024.04.These commits are extract from dotnet/runtime#105207
Contributes to dotnet/runtime#35362
CC @am11 @gwr