[BUG] gpgme_data_new_from_filepart() broken since gpgme 0.4.5

Marcus Brinkmann marcus.brinkmann at ruhr-uni-bochum.de
Tue Mar 23 00:34:51 CET 2004


> Irregardless of their idea what the right thing to do is wrt library
> interfaces for LFS, they certainly get one thing right: That LFS is
> enabled.  So, if this is consistently done in all Gtk and Gnome
> libraries, enabling it in balsa should be a no-brainer (but watch out
> for other libraries you use - if you are exchanging file descriptors
> with them, or they use off_t in their interface, they also must be
> compiled with LFS support enabled - if you don't exchange fds or use
> off_t, it doesn't matter).  You just add the AC_SYS_LARGEFILE macro to
> your configure.ac.

I should note that the blatant compatibility issue is the use of
off_t, because that changes the call frame.  The exchange of file
descriptors is ok as long as the 2GB limit is not crossed.  Only then
you will experience subtle bugs if two object files disagree.  For
example, seeking a file could spuriously fail.

> Apparently, you can find a script that checks the library dependencies
> for mismatches on http://ac-archive.sourceforge.net/largefile/.  I'd
> suspect it would be suspect to false positives under certain
> conditions, but it's definitely a starting point.

I just tried this off_t_problem script, and it doesn't seem to be
reliable.  It didn't see any problem with gpgme and balsa :)

However, with the option --detected it is useful, as it will show you
if a library is compiled with or without largefile support.

It turns out that for gnome and co, this is a merry mix.  So, file
descriptor exchange - wise, you are already deep in the land of subtle
bugs, irregardless of how gpgme is compiled.

So, the only thing you are probably going to worry about for practical
reasons is off_t.  Everybody else seems to avoid it - because of the
LFS issue.  In that case, you won't experience any additional problems
in balsa ifyou just use AC_SYS_LARGEFILE.  I say additional because
due to the mix of libraries, you might get subtle bugs if you actually
try to use large files.  However, to really say if it is broken or not
in this regard requires a careful analysis of all the libraries
involved.

Thanks,
Marcus



More information about the Gnupg-devel mailing list