gnustep-dev
[Top][All Lists]
Advanced

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

Re: win32 show-stoppers


From: Hovik Melikyan
Subject: Re: win32 show-stoppers
Date: Sat, 20 Dec 2014 12:35:57 +0000

Hi Barnaby,

The fork is here: https://github.com/crontab/libobjc2

Currently it's only for 32-bit. At the moment most of the tests pass
except a few that test exceptions. Looks like a bug to me, because
exceptions work in trivial situation but fail in more complex ones,
and right now I don't know what's going on.

My environment:

- Windows 7 Home Edition (within a VM if that matters)
- clang 3.5 (Windows Installer)
- MinGW-32 + MSYS
- MinGW packages required:
    mingw32-gcc-g++ (4.8)
    mingw32-pthreads-w32 (2.9)
- CMake (built from sources under MinGW)
- CMake command:

mkdir Build ; cd Build
cmake .. -DCMAKE_C_COMPILER=/c/LLVM/bin/clang.exe \
    -DCMAKE_CXX_COMPILER=/c/LLVM/bin/clang++.exe \
    -G 'MinGW Makefiles'

(because by default CMake builds Visual Studio files)

And of course your contributions are more than welcome!

--
H.M.


On Sat, Dec 20, 2014 at 8:03 AM, Barnaby Jones
<address@hidden> wrote:
> During my attempt to build libobjc2 for windows I stumbled over several
> problems. I still investigate it because I find Objective-C superior to C++
> but at the moment I find no other alternative to compile applications on all
> major systems:
>
> 1. Exception unwinding: For windows you need seh support. This is now
> initial implemented in Clang but still missing in LLVM. The GCC 32Bit
> unwinding lib was also missing from my (Linux) build. This missing feature
> was caused by a (now expired) patent issue.
>
> 2.  MinGW Clang support: MinGW (w64) only supports GCC I could not find help
> for several compilation problems. Also I don't know if all necessary MinGW
> patches are now in the clang (repository) trunk.
>
> 3. CMake: The host/client cross-compilation rules for Clang are missing.
>
> if an experimental fork/branch for gnustep/libobjc2 on win32 x64 would be
> created I would gladly help you with the port.
>
>
> On 16.12.2014 03:15, Hovik Melikyan wrote:
>>
>> Hello,
>>
>> I'm trying to compile libobjc2 on Windows/MinGW. At the moment I'm
>> stuck on this line in objc_msgSend.x86-32.S:
>>
>>      addl  $_GLOBAL_OFFSET_TABLE_+(8b-7b), %ebx
>>
>> Clang aborts here with this message: "unsupported relocation type" (I
>> think it's an assertion).
>>
>> Command line used:
>>
>> clang.exe  -DGC_DEBUG -DGNUSTEP -DNO_LEGACY \
>>      -DTYPE_DEPENDENT_DISPATCH -D_BSD_SOURCE=1 \
>>      -D_XOPEN_SOURCE=700 -D__BSD_VISIBLE=1 \
>>      -D__OBJC_RUNTIME_INTERNAL__=1 -Dobjc_EXPORTS -fPIC \
>>      -c objc_msgSend.S
>>
>> with clang 3.5.
>>
>> I think I understand what global offset table is for, but I have no
>> clue why clang's assembly refuses to compile it.
>>
>> Any ideas on how to fix this line to compile and work on MinGW 32?
>>
>> (I'm pretty sure there are a lot more problems ahead with this port.
>> At least the calling convention in this asm file will have to be taken
>> care of, and possibly more. I'm just wondering if anyone has ever had
>> any success with it. I can't find anything apart from some older posts
>> here in 2010 then 2013, with no positive outcome.)
>>
>> Thanks!
>>
>> --
>> H.M.
>>
>> _______________________________________________
>> Gnustep-dev mailing list
>> address@hidden
>> https://lists.gnu.org/mailman/listinfo/gnustep-dev
>
>
>
> _______________________________________________
> Gnustep-dev mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/gnustep-dev



reply via email to

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