[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Windows support in libobjc2
From: |
David Chisnall |
Subject: |
Re: Windows support in libobjc2 |
Date: |
Thu, 2 Aug 2018 09:29:55 +0100 |
On 1 Aug 2018, at 21:43, Ivan Vučica <ivan@vucica.net> wrote:
>
> I'm not actively using it, but as this holds my interest, I could give
> it a shot.
Great!
> Could you, along with clang and runtime binaries, provide build
> instructions up to a trivial -base app?
I haven’t actually tried to build GNUstep yet. The runtime is built as a
native Windows DLL with no external dependencies. I believe it should work
with the SEH versions of MinGW and with anything built with Visual Studio. GCC
gained SEH support around 4.9ish, so exceptions should interoperate with any
C/C++/Objective-C/whatever code that is built with a vaguely recent GCC, clang,
ICC, or MSVC with an MSVC-compatible target triple.
> Could you clarify what you mean by using with a different linker? I
> generally just have clang pick a linker on other platform (as with
> gcc); how does one tell clang which linker to use? I think I haven't
> uninstalled it, so I think I have msvc set up, but it'd be nice to be
> able to use a free toolchain.
The Windows builds of clang appear to default to invoking link.exe. If you use
-fuse-ld=lld, then I believe it will try to use lld-link.exe on Windows, which
is the link.exe-compatible lld frontend. I do not yet have a build of lld for
Windows, so I haven’t tested it yet. I’ve no idea how well BFD ld works (gold,
as I recall, doesn’t support anything other than ELF). From the lld web site,
I believe that it supports all of the linker features that I use, so it should
be possible to build with an entirely free toolchain (modulo the fact that
you’re linking to a bunch of non-Free system libraries, running on a non-Free
OS, using a non-Free windowing system, and so on).
> Have you, before this, tried using libobjc2 with clang with mingw64 w/
> msys, or with cygwin?
Before I started at MSR, the most recent version of Windows I’d used was
Windows 2000. I started working on libobjc2 after I stopped using Windows, so
this is the first time that I’ve trued using both together.
David