> Date: Mon, 06 Jan 2003 11:16:17 +0100 > From: Guido Draheim <[EMAIL PROTECTED]> > > The problem is in call-mismatch: the library is compiled as 64bit off_t > which makes a call like "lseek (int,off_t,int)" to be actually an > "lseek (int,off64_t,int)". When an application is compiled without the > largefile-macro,
Yes, that's the problem. Don't mix 32-bit applications with 64-bit libraries. It's that simple. It's just like you shouldn't mix x86 applications with sparc libraries. They're different flavors of executable code. Don't try to link them together. > A library maker should therefore put in efforts to defend itself I disagree. Should an x86 library maker defend against being linked to a sparc application? Of course, I realize that one _can_ build mixed 32-and-64 bit apps -- just as one _can_ link x86 code to sparc code. However, generally speaking it's a bad idea, as it is much more trouble than it's worth. I'll go even further and say that if you have an application that uses file offsets and you don't invoke AC_SYS_LARGEFILE or its equivalent, you're not serious about building portable code. Apps that don't use AC_SYS_LARGEFILE aren't worth worrying about.
