Lar looks pretty portable to 64-bit to me.
I think it would be nice if it worked on both platforms. Maybe this will help someone familiar with the code:
segment gets set to zero by lar_compress()
Here's a silly patch that fixes it for me, and hopefully sheds light on the real problem. With this patch, bogus gets set to zero instead of segment.
I duplicated it on FC 5 (gcc 4.1.1 binutils-2.16.91) and FC6 (gcc 4.1.2 binutils-2.18.50).
Maybe function pointers are overkill in terms of complexity for this case of no compression, lzma, or nrv2b.
Myles