Hey guys,
While trying to test something on Windows, I ran into this issue:
Compiling file GSFFIInvocation.m ...
Linking library libgnustep-base ...
Creating library file: ./obj/libgnustep-base.dll.a
obj/libgnustep-base.obj/NSData.m.o: In function `readContentsOfFile':
C:\GNUstep\msys\1.0\home\gregc_000\Development\gnustep\core\base\Source/NSData.m
:181: undefined reference to `fseeko'
C:\GNUstep\msys\1.0\home\gregc_000\Development\gnustep\core\base\Source/NSData.m
:193: undefined reference to `ftello'
C:\GNUstep\msys\1.0\home\gregc_000\Development\gnustep\core\base\Source/NSData.m
:204: undefined reference to `fseeko'
collect2: ld returned 1 exit status
I believe it is caused by the following change:
Add large file support (LFS) for NSData.
* Source/NSData.m (readContentsOfFile): Use fseeko/ftello and
off_t as appropriate.
(-initWithContentsOfFile:): Define fileLength of type off_t.
* Source/GSFileHandle.m:
* Source/win32/GSFileHandle.m:
* Source/NSFileManager.m: Remove _FILE_OFFSET_BITS define (now
defined globally in config.h).
The corrective action I am going to take is to put an ifdef in to conditionally compile calls which are present under MinGW on Windows. This should leave the improvements on Linux unaffected.
Please let me know if there is any objection to this. I see that changes were made to the win32 version of GSFileHandle.m, so I suspect the change may have built on Windows, but it currently doesn't build with the version of MinGW I have.