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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.