gpg 1.0.3 on Solaris w/ large file support

Lars Hecking lhecking@nmrc.ie
Tue, 17 Oct 2000 13:10:12 +0100


 [Please Cc: replies, I'm not on the list.]

On Wed, 4 Oct 2000 15:27:15 +0200 (CEST), Nils Ellmenreich wrote:

> I've tried to install the generic 1.0.3 on both, Solaris 2.6 and 8. It
> doesn't work out of the box as util/iobuf.c fails to find the 64bit data
> structure definitions from <sys/stat.h>.
The same problem exists on HP-UX.
> This is because Solaris
> requires the compilation flag -D_LARGEFILE64_SOURCE to support these
> functions.
From my understanding of large file support, this is not correct. According http://ftp.sas.com/standards/large.file/x_open.20Mar96.html, _LARGEFILE64_SOURCE and the *64() functions/ *64 structs are part of a transitional ABI, and are only required if one mixes 32/64bit types in the same program. I have a first cut at a patch for gnupg-1.0.3b that adds large file support at configure level. But there is still work to be done (or has it been done already?) in util/iobuf.c. I think that - the redefinition of fopen() and fstat() must go - u32 iobuf_get_filelength( IOBUF a ) must be rewritten to not explicitly return u32, but a different type that is 64 bit on 64 bit platforms - accordingly, the struct stat64 and "#if defined (HAVE_FOPEN64) && defined (HAVE_FSTAT64)" stuff in iobuf_get_filelength() must go. I could be totally off track here, of course ;-) Will I post my patch here? I have no ftp site to put it on. It compiles nicely on 32/64bit Solaris, but doesn't on IRIX/HP-UX/DU. I _think_ that I have problems compiling gpg on these platforms anyway ...
> Further more, even with this flag 1.0.3 doesn't compile on my Solaris
> 2.8 machines with linke problems with
[...] I think this worked for me. May be a gcc installation problem.