> Am 02.12.2020 um 20:20 schrieb David Chisnall <[email protected]>: > > 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
