I've tried to combine this with prebuilt binary of GNUstep for Windows, and compile Zcode. Of course, that failed: undefined reference to `objc_getPropertyStruct' I presume this is because runtime shipped with the above GCC 4.6 does not support properties. Oh well -- I went and tried to compile GNUstep.
I've followed instructions in README.MinGW and managed to install gnustep-make, but compiling the runtime failed. $ make THREADING=posix This is gnustep-make 2.6.0. Type 'make print-gnustep-make-help' for help. Making all for clibrary libobjc... Compiling file thr-posix.c ... thr-posix.c: In function '__objc_thread_detach': thr-posix.c:93:5: error: cannot convert to a pointer type thr-posix.c: In function '__objc_thread_id': thr-posix.c:177:3: error: cannot convert to a pointer type make[3]: *** [obj/libobjc.obj/thr-posix.c.o] Error 1 make[2]: *** [internal-library-all_] Error 2 make[1]: *** [libobjc.all.clibrary.variables] Error 2 make: *** [internal-all] Error 2
Trying to compile with non-POSIX threading also fails: This is gnustep-make 2.6.0. Type 'make print-gnustep-make-help' for help. Making all for clibrary libobjc... Linking clibrary libobjc ... Creating library file: ./obj/libobjc.dll.a obj/libobjc.obj/Object.m.o: In function `-[Object error:]': c:\Users\ivucica\Downloads\gnustep\libobjc/Object.m:329: undefined reference to `__gnu_objc_personality_sj0' collect2: ld returned 1 exit status make[3]: *** [obj/libobjc.dll.a] Error 1 make[3]: *** Deleting file `obj/libobjc.dll.a' make[2]: *** [internal-library-all_] Error 2 make[1]: *** [libobjc.all.clibrary.variables] Error 2 make: *** [internal-all] Error 2
I'm not sure how to proceed. I will try removing precompiled GNUstep completely and attempting to compile from scratch -- perhaps something messed up when I tried to merge the two directory trees.
I'm also interested why do instructions specify in multiple places that POSIX variants of code (namely, threading) should be used? Especially if there are win32-specific code variants?