Hello, "Bill Schottstaedt" writes: > This is trickier than I thought -- it's not the GC after all. In my configure > script for Snd, autoconf defines _FILE_OFFSET_BITS to 64 if large files are implemented. > The config.h "include" precedes everything else. When scm_getc is called > within guile, it thinks sizeof(scm_t_port) is 92. Everything is fine until > my skip comment procedure is called (with this 92 byte struct) -- it > thinks the scm_t_port size is 104, and fields like rw_active (in scm_getc > which is apparently expanded inline) are not where it expects them to be! > If I undef _FILE_OFFSET_BITS, both agree on the struct size, and there > is no problem. Ouch! That's a good illustration of the harm that can be done by exposing data structures. The attached patch adds a new `scm_t_off' type, whose definition does not depend on the application's `_FILE_OFFSET_BITS' value. Can you confirm that it allows you to build Guile with 32-bit offsets and Snd with 64-bit offsets (or vice versa)? Neil: Does this sound like the right approach? Thanks, Ludo'.