[cfe-dev] [libunwind][rfc] Switch to native-only unwinding by default

Asiri Rathnayake via cfe-dev cfe-dev at lists.llvm.org
Wed May 25 06:26:34 PDT 2016


Hi All,

r27092 [1] landed a patch for libunwind making it possible to build libunwind without support for cross-unwinding [2]. It simply tightens the bounds of the buffers unw_context_t and unw_cursor_t depending on the target architecture being compiled for - which in turn reduces the stack usage of the unwinder across all the targets.

I'm proposing to make this the default build configuration. This allows us to maintain the tight bounds of unw_context_t and unw_cursor_t as any changes to a VRS (UnwindCursor and Registers_xxx classes) will cause the builds to fail on that architecture (unless if the bounds are correctly adjusted in __libunwind_config.h). We are not losing anything since if the native-only unwinder is happy, correctness of the cross-unwinding version will follow (just larger buffer sizes).

If there are no objections, I will make this switch over the next weekend and monitor the bots (I think I've calculated the tight-bounds for unw_context_t and unw_cursor_t for each architecture correctly, but in case if I missed something, I will have time to adjust them a bit).

Thanks.

/ Asiri

[1] http://llvm.org/viewvc/llvm-project?view=revision&revision=270692
[2] http://www.nongnu.org/libunwind/man/libunwind(3).html#section_4




More information about the cfe-dev mailing list