Repository navigation
coreclr build fails when specifying cmakeargs -DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE #2014
Description
Activity
- addedarea-Infrastructure-coreclrOnly use for closed issuesOnly use for closed issuesuntriagedNew issue has not been triaged by the area ownerNew issue has not been triaged by the area owner
on Jan 22, 2020 What system/OS is this?
@mikem8361 looks like this comes from our work in ARM unwinding (b61cc2f). Looks like
_OOP_find_proc_infowas added directly to libunwind. However this function only gets build then:The easiest solution would be to hoist such logic into another statically linkable asset, but if memory serves he right we use types that are not available in the public libunwind surface area.add_subdirectory(libunwind) @dseefeld is this for sourcebuild? What's the impact if so? Or is this more around serviceability or the ability to build like that?
@hoyosjs Yes. This is for sourcebuild. The impact is that RedHat has requested that we use the local system's libunwind for portable builds. See dotnet/source-build#391 The OS that I'm using to build this is CentOS.
- added and removeduntriagedNew issue has not been triaged by the area ownerNew issue has not been triaged by the area owner
on Jan 22, 2020 - removedarea-Infrastructure-coreclrOnly use for closed issuesOnly use for closed issues
on Jan 23, 2020 libunwind/libunwind#187 is starting the process of adding
_OOP_find_proc_infoto libunwind, but it is unlikely to make it into system version of libunwind for a while. It would need to wait at least to the 1.6 release. (1.5 isn't released yet).Since this is only needed for the DAC unwind, the solution maybe to either:
- Disable the the DAC Out of Process unwind feature.
- Use the local libunwind source for DAC only.
- > • Disable the the DAC Out of Process unwind feature.This breaks a lot of stack traces that have HelpMethodFrames (fairly common), but it is limited to dotnet-dump/CLRMD on coredumps. Live managed debugging and live SOS debugging under lldb will work fine.> • Use the local libunwind source for DAC only.This still breaks the source build because the DAC is still built along with the rest of the runtime. But maybe our source build customers would like it slide (RHEL).
I guess the third option would be to revert part of #26082 (to keep our custom oop code) when
CLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUEuntil libunwind/libunwind#187 is released and available to RHEL.cc @tmds
3 remaining items
@sdmaclea are you still actively pursuing libunwind/libunwind#187?
@omajid are you ok with using the packed libunwind until the feature is available as part of system libunwind?
We can consider backporting it once the feature is merged upstream.I have been working on other issues. I can probably look at libunwind/libunwind#187 later this week.
#39213 restored some of the code which was removed in #26082. It makes it simpler to fix this issue more directly. @mikem8361 has been considering an approach like this...
Now that PR #39213 is in I was planning to add the rest of the necessary code and build stuff in the next month. It missed today's preview8 snap but it be done in the next week or two.
I have this coded up and I'm testing.
@omajid are you ok with using the packed libunwind until the feature is available as part of system libunwind? We can consider backporting it once the feature is merged upstream.
Yes, we can use the bundled libunwind until the features are available upstream.
- ghost locked as resolved and limited conversation to collaborators
on Dec 11, 2020
When trying to build coreclr using the system version of libunwind, the build fails with the following error: