(Illustration by Gaich Muramatsu)
On Fri, Jan 02, 2004 at 10:58:53PM +1030, Brett Lymn wrote: > Does coda run on any other 64bit architectures? Should I just update > to coda6 and try my luck? (the only reason I am using coda5 is that it Coda isn't 64-bit clean. I've already worked my way through LWP and RVM which are working fine on an old 64-bit DEC Alpha machine. The kernel module is 'probably' ok on Linux. People have successfully built and ran earlier versions of Coda on sparc64 with a 64-bit kernel, but compiling Coda userspace in a 32-bit compatibility mode. The biggest problem is really RPC2, which defines RPC2_Integer as a signed long integer. This percolates all throughout the rest of the code and causes serious problems because all the data structures end up not matching with other 32-bit clients (and probably the kernel module). Simply changing the RPC2_Integer typedef results in hundreds of compiler warnings and leaves several things unresolved, should file lenghts be 32-bit as with the existing systems or become 64-bit and break compatibility. It also causes many problematic cases caused by casts that do something like, (long *)&rpc2_integer_type, which works just fine on a 32-bit machine where sizeof(long) == sizeof(int), but introduces a pretty serious bug on 64-bit machines. And as the casts hide the compiler warnings, this goes mostly unnoticed until we try to use the value and get bad data, or when we silently corrupt adjacent memory by storing new data to the 'long *'. JanReceived on 2004-01-03 01:01:21