site_archiver@lists.apple.com Delivered-To: darwin-dev@lists.apple.com off_t is 64 bit by default in Mac OS X, so it's not necessary to use special calls to obtain large file support. You will still need to use fseeko() instead of fseek(), unless you compile your code 64 bit (fseek() takes a long instead of an off_t because the standard requires it). I'm actually surprised off_t isn't 64 bit for Linux as well; it is for all of the BSDs. -- Terry On Oct 23, 2010, at 3:28 AM, Alex Reynolds wrote:
I have a C application I am trying to compile under Mac OS X 10.6.4, which includes large file support. The application builds correctly under Linux.
Here is the Darwin kernel I am using:
------------------------- $ uname -v Darwin Kernel Version 10.4.0: Fri Apr 23 18:28:53 PDT 2010; root:xnu-1504.7.4~1/RELEASE_I386 -------------------------
My gcc installation is as follows:
------------------------- $ gcc --version i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664) -------------------------
My Makefile is as follows:
------------------------- CC=gcc CFLAGS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -O3 -Wformat -Wall -pedantic -std=gnu99
all: myApp rm -rf *~
myApp: myApp.o ${CC} ${CFLAGS} myApp.o -lbz2 -o myApp rm -rf *~
clean: rm -rf *.o myApp -------------------------
The issue is that my application makes calls to "fseeko64" and "fopen64", and it uses the "off64_t" type for offsets. When I attempt to build, I get the following related warnings and errors:
------------------------- $ make myApp gcc -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -O3 -Wformat -Wall -pedantic -std=gnu99 -c -o myApp.o myApp.c myApp.c: In function ‘extractData’: myApp.c:119: warning: implicit declaration of function ‘fseeko64’ myApp.c:119: error: ‘off64_t’ undeclared (first use in this function) myApp.c:119: error: (Each undeclared identifier is reported only once myApp.c:119: error: for each function it appears in.) myApp.c: In function ‘extractMetadata’: myApp.c:305: warning: implicit declaration of function ‘fopen64’ myApp.c:305: warning: assignment makes pointer from integer without a cast -------------------------
My code builds without errors under Linux. What changes can I make to the source code to add large file support when building under Darwin?
Thanks for your advice.
Regards, Alex _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/tlambert%40apple.com
This email sent to tlambert@apple.com
_______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/site_archiver%40lists.appl... This email sent to site_archiver@lists.apple.com