Hi all,
I had to make a big diagram of the thread in order to understand everything. Now I want to summarise where we are, as far as I can determine, and then add some new points. 0) linux 64 bit file support is still a bit of a mess, see the afio history file. 1) in Debian afio 2.4.7-3. Dirk E set options -D_FILE_OFFSET_BITS=64 D_LARGEFILE_SOURCE + in order write archives larger than 2gb. If this is used, then off_t gets to be 64 bits, (maybe inode_t also?), which seems (so far) harmless on intel, but on powerpc triggers bugs due to casts. 2) Dieter S reported such a cast related bug, this was fixed by changing some sprintf statements to cast the argument asb->sb_size to (long int) asb->sb_size. This is debian bug 144986 3) Stephen van Egmond also had problems with afio 2.4.7-3, investigations led to the identification of one other casting related bug, in that a call to inalloc() did not apply the right conversion, this can be fixed by changing: afio.h: void inalloc(off_t) afio.c: STATIC void inalloc(off_t len) 4) Stephan also made some other changes to eliminate warnings and add full declarations on the .h file etc. this led to Dirk producing a version 2.4.7-6 on http://dirk.eddelbuettel.com/edd/code/debian/UnderReview/ 5) Dieter S still reports (on 30 Jul) that this above 2.4.7-6 has `the same error' which is an error in executing the -t option. This is worrying, and maybe Dieter wants to produce a test case for Stephen to try to reproduce on his powerpc installation. numbers 3-5 are captured in the logs of debian bug 153948 Now for some additions of my own: 6) I agree completely with Stephen's conclusions that there may be more endianness bugs lurking, so in the short term, I recommend to Dirk that any afio release on debian that pretends to be stable should omit the -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE options in the powerpc builds so as to avoid any endianness bugs. 7) Stephen recommends modernising the code base, I agree with this, and notice that already some modernisation was done in the massive patch file that produces 2.4.7-6. 8) HOWEVER some parts of this patch I do not want to fold into the main afio tree, in particular I do not want to have any assumption that printf/scanf can deal with 64 bit ints at all, because (from experience!) I know that this would cause lots of pain on some non-gcc non-linux platforms. So I will (have to) do my own modernisation, warning, etc pass based on the patch file. 9) Depending on the weather. i.e. if we get a few rainy days, (and I am not in California but in Holland right now), I might soon release a modernised afio source base to Dirk, so that we can avoid a futher branching between my afio code base and Dirk's afio/debian revisions. No hard promises or deadlines though. Please tell me if I missed anything important. Are the patches in point 4 still the latest ones? In terms of me getting access to a powerpc machine: I don't want to have it right now, but if I get going on this (and depending on the weather) I might want to later. Cheers, Koen.