Re: Building GNUstep for Windows using Clang
Frederik Seiffert <[email protected]>
| Newsgroups | gmane.comp.lib.gnustep.devel |
|---|---|
| Message-ID | <[email protected]> |
> 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