discuss-gnustep
[Top][All Lists]
Advanced

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

Re: Building frameworks on GNUstep Windows


From: Andre Levy
Subject: Re: Building frameworks on GNUstep Windows
Date: Wed, 16 Feb 2005 10:26:47 +0100
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.3) Gecko/20040910

Alex Perez wrote:

Andreas Höschler wrote:

Hello all,

we have installed GNUstep base on Windows using the the binary installer (good work) and even managed to build gui. However, we encounter problems while porting our frameworks to windows. Building any framework gives us

...
SRManager.m: undefined reference to '__objc_class_name_NSString'
SRManager.m: undefined reference to '__objc_class_name_NSData'
SRManager.m: undefined reference to '__objc_class_name_NSArray'
C:\GNUstep\Development\msys\1.0\mingw\bin\dllwrap.exe: no export definition file provided.
Creating one. This might not what you want.

Any idea what this means and how this can be fixed?


The short answer: This is a limitation/bug of/in GNUstep-make and needs to be fixed. If you explicitly tell the framework to link against GNUstep-base, it will compile, BUT.....the problem is a lot more complex than you may realize..

I recently ran across this myself. Frameworks under Windows are basically completely broken. Frameworks absolutely rely on symbolic links, which in turn relies on a filesystem which supports them (as well as userland tools which support the creation of real symbolic links). Now, NTFS didn't even support symbolic links until Windows XP (version 5.1), and NTFS only had fetal hard-link support in Win2K. Currently, the mingw32 userland tools (and maybe the cygwin ones, but I don't know for sure) don't work the same. Since even with Windows XP, one cannot guarantee that the machine is using NTFS (XP, and possibly 2K, runs fine under FAT32, which has *ZERO* support for symbolic links), mingw32's 'ln -s' actually just performs a copy operation. This is very dirty and wrong, but it's the only safe way of dealing with the problem.

I have tried to use "junction" NTFS's symbolic links. well, the concept exists, yes. but since there is no support in the system, one never can't tell if a file is real or just a symbolic link. therefore, playing with a symbolic link (moving it, deleting it,...) usually leads to a disaster.

 The same makefile

works great on Linux and Solaris. Has anybody ever managed to build a framework under GNUstep windows?


It works, but as I stated above, you have to have duplicates of all your data, since symbolic links aren't something you can be sure of the existance of under XP or 2K. I've worked up a GNUstep-make patch which makes all frameworks build as libraries under win32. It's not in CVS yet. If you are interested in this patch and in the further makefile magic/changes required to make it work, let me know.


I have tried many times to use the framework stuff in gnustep-make (in version 1.3.2, 1.6.0, 1.9.0 then 1.10.0) but I was so lost I resorted to build a library then package it as a framework. (of course, I can't use features like framework versions but that's ok for the application my company works on.)

I hope you have found this informative, and if you've got any further questions, feel free to fire away...

Cheers,
Alex Perez





_______________________________________________
Discuss-gnustep mailing list
Discuss-gnustep@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnustep






reply via email to

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