gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Building GNUstep for Windows using Clang


From: Frederik Seiffert
Subject: Re: Building GNUstep for Windows using Clang
Date: Thu, 3 Dec 2020 17:05:59 +0100

Am 02.12.2020 um 20:20 schrieb David Chisnall <gnustep@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

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

[Prev in Thread] Current Thread [Next in Thread]