discuss-gnustep
[Top][All Lists]
Advanced

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

Re: Building under Cygwin


From: Ivan Vučica
Subject: Re: Building under Cygwin
Date: Fri, 9 Aug 2013 01:37:41 +0200

Alright,

I ended up doing a bit more of playing with this. Looks like skipping Cygwin and interacting directly with Win32, just like it's done under MinGW, works.

I don't like the following patch one bit, though. The include doesn't seem to belong here, and I think dlopen()/dladdr() code should work under Cygwin.

$ svn diff
Index: Source/objc-load.m
===================================================================
--- Source/objc-load.m  (revision 36939)
+++ Source/objc-load.m  (working copy)
@@ -40,6 +40,10 @@

 #import "GSPrivate.h"

+#ifdef __CYGWIN__
+#include <windows.h>
+#endif
+
 /* include the interface to the dynamic linker */
 #include "dynamic-load.h"

@@ -83,7 +87,7 @@
 objc_initialize_loading(FILE *errorStream)
 {
   NSString     *path;
-#ifdef    __MINGW__
+#if defined(__MINGW__) || defined(__CYGWIN__)
   const unichar *fsPath;
 #else
   const char *fsPath;
@@ -126,7 +130,7 @@
     }
 }

-#if    defined(__MINGW__)
+#if    defined(__MINGW__) || defined(__CYGWIN__)
 #define        FSCHAR  unichar
 #else
 #define        FSCHAR  char
@@ -237,7 +241,7 @@
 }


-#ifdef __MINGW__
+#if defined(__MINGW__) || defined(__CYGWIN__)
 // FIXME: We can probably get rid of this now - MinGW should include a working
 // dladdr() wrapping this function, so we no longer need a Windows-only code
 // path


On Friday, August 9, 2013, Ivan Vučica wrote:
Hello all,

I'm trying to build GNUstep Base under Cygwin. So far, I've done the following

cd gnustep/core/make
./configure --enable-debug-by-default --with-layout=gnustep --prefix=/GNUstep
make && make install
cd -

. /GNUstep/System/Library/Makefiles/GNUstep.sh
cd gnustep/core/base
./configure --with-ffi-include=/usr/lib/libffi-3.0.13/include --disable-icu --disable-libdispatch
make

I've disabled ICU simply because I'm connecting over a metered connection, and 15mb+ is just a bit too much for me to install right now.

I've disabled libdispatch because its presence was incorrectly detected by configure; header called 'dispatch.h' exists in Cygwin's /usr/include/w32api/, which is enough to trigger an attempted inclusion of this file by GSDispatch.h.

I'm having trouble with the following though:

 Compiling file objc-load.m ...
objc-load.m: In function ‘GSPrivateSymbolPath’:
objc-load.m:299:32: error: request for member ‘category_name’ in something not a structure or union
objc-load.m:313:46: error: request for member ‘class_name’ in something not a structure or union
objc-load.m:314:25: error: request for member ‘class_name’ in something not a structure or union
objc-load.m:316:40: error: request for member ‘category_name’ in something not a structure or union
objc-load.m:317:25: error: request for member ‘category_name’ in something not a structure or union
/GNUstep/System/Library/Makefiles/rules.make:468: recipe for target `obj/libgnustep-base.obj/objc-load.m.o' failed

I'm using the GCC and the GCC runtime, since they come with Cygwin and I don't feel like playing with getting Clang (or, even worse, compiling it). I'm not installing libobjc2, at least not until the GCC-only setup works... GCC is 4.7.3.

$ gcc --version | head -n1
gcc (GCC) 4.7.3

Tips?




--
Ivan Vučica
ivan@vucica.net



--
Ivan Vučica
ivan@vucica.net


reply via email to

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