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
> [email protected]
> <javascript:_e({}, 'cvml', '[email protected]');>
>
>
--
Ivan Vučica
[email protected]
_______________________________________________
Discuss-gnustep mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep