> Am 02.12.2020 um 20:20 schrieb David Chisnall <gnus...@theravensnest.org>:
> 
> It looks as if the code to check which personality function is outside the 
> runtime-specific code.  The attached diff should fix that.

Thanks! I will try that.

> This looks as if clang is still trying to use the Itanium C++ ABI.  When the 
> Objective-C code is targeting windows, it now asks for RTTI from the CXXABI 
> class, but somehow your target triple is asking for the Itanium ABI, so we 
> emit Itanium ABI C++ RTTI things and they then fail to link because they 
> refer to things that exist only on Itanium ABI C++ runtimes.
> 
> I am not sure if there is a good way of fixing this other than to use a MSVC 
> target triple.  C++ EH interop almost certainly won't work if MinGW is 
> targeting the Itanium ABI for C++ and I really don't want to support the 
> horrible 'let's try to layer Itanium-style unwinding on top of SEH, what's 
> the worst that can happen?' approach that MinGW uses.

I just don’t know how to use the MSVC triple with the MinGW toolchain, as using 
the x86_64-pc-windows-msvc triple seems to somehow remove Clang’s ability to 
find MinGW headers like stdio.h or pthread.h. Our discussion on GitHub has some 
more details of what I tried in that direction:
https://github.com/gnustep/libobjc2/pull/186#issuecomment-735449495 
<https://github.com/gnustep/libobjc2/pull/186#issuecomment-735449495>

I don’t really understand the interplay between target triples and toolchains, 
but I wonder whether your suggestion works here given that GNUstep requires 
MinGW.

Frederik

Reply via email to