[PATCH] D39673: Toolchain: Normalize dwarf, sjlj and seh eh

Martin Storsjö via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 6 23:27:51 PST 2017

mstorsjo added a comment.

In https://reviews.llvm.org/D39673#917506, @martell wrote:

> @mstorsjo I think this should help with issues like having to set the default for ARM to DWARF.
>  If you can set it at run time then it should be a lot easier to just set that in the clang wrapper scripts.

Yes, I think this probably can be useful.

As for the ARM patch (https://reviews.llvm.org/D39532), parts of it are necessary in any case since the ARM/COFF backend doesn't support outputting dwarf yet. Since there's no other option there yet, setting it to dwarf until something else is implemented probably should be fine though.

The main place where this patch really can provide value though, is for the libcxxabi/libunwind based x86_64 builds. Since libcxxabi doesn't support SEH yet (although I'm planning on at least having a look at how much work it'd be to implement it, but I'm afraid it can be a pretty big task), but clang for x86_64 mingw in general does support SEH (and that's what is used for the normal mingw setups) we shouldn't change the default there.

I haven't tried this patch in that setup yet but will do soon.

> Long term I would like the MinGW Driver to load a different libunwind depending on the exception model but that discussion might still be a little off.

I don't really see what would be necessary there; a matching unwinding library should be provided in whatever C++ and compiler runtime library you use, so that's mostly an issue for whoever sets up the environment to build libraries in the right configurations matching it as a whole.



More information about the cfe-commits mailing list