On Sun, Mar 18, 2012 at 10:00:46PM -0400, David T. Lewis wrote:
On Sun, Mar 18, 2012 at 06:55:10PM -0700, Eliot Miranda wrote:
Hi David,
On Sun, Mar 18, 2012 at 6:30 PM, David T. Lewis lewis@mail.msen.com wrote:
On a Linux system, the data types that represent file positions are 32 bits in size when the program is compiled in 32-bit mode (using the -m32 compiler option), and they are 64 bits in size when the program is compiled in 64-bit mode. The relevant data types are off_t and size_t, and if you compile the following in 32-bit mode (-m32) and compare the same program compiled in 64-bit mode, you can see the difference:
#include <stdio.h> #include <sys/types.h> main() { printf("off_t is %d\n", sizeof(off_t)); printf("size_t is %d\n", sizeof(size_t)); }
Not quite. One can modify this by defining something like _LARGEFILE64_SOURCE at compile time. e.g. see _LARGEFILE_SOURCE _LARGEFILE64_SOURCE & _FILE_OFFSET_BITS in http://www.delorie.com/gnu/docs/glibc/libc_13.html. I'll check that the appropriate one is defined when building Cog asap.
Excellent, thank you!
(CC to vm-dev)
I note that Nicolai Hess has just added a note to the Mantis issue with a similar tip and pointers to additional things that may need attention in the support code.
http://bugs.squeak.org/view.php?id=7522
Dave