LFS/syscalls -> Kernel interface incompatibility
Andreas Jaeger
aj@suse.de
Fri May 26 03:05:00 GMT 2000
>>>>> Thorsten Kukuk writes:
Th> On Thu, May 25, Ulrich Drepper wrote:
>> Thorsten Kukuk <kukuk@suse.de> writes:
>>
>> > But with the current situation, I think we need to duplicate this
>> > files for every big endian architecture and change the syscall.
>>
>> Yes, and this is no real problem. Just locate them and provide an
>> alternative file. Assume we cannot change the kernel (which is most
>> probably the correct assumption).
Th> Ok, here is a patch for sparc32. It seems PowerPC doesn't support
Th> LFS in the moment, but they have to make the same changes if they
Th> support it. Have we more big-endian, 32bit architectures ?
Th> The other syscalls looks ok.
Th> The patch is for glibc 2.1 and 2.2.
Th> 2000-05-26 Thorsten Kukuk <kukuk@suse.de>
Th>
Th> * sysdeps/unix/sysv/linux/sparc/sparc32/ftruncate64.c: New, change
Th> syscall arguments for big-endian.
Th> * sysdeps/unix/sysv/linux/sparc/sparc32/truncate64.c: Likewise.
Th>
I've one design question: In case of such problems do we put little
endian or big endian files in sysdeps/unix/sysv/linux?
Currently we have there for example:
- ftruncate64 that works for little endian
- pread64 that works for big endian
Or should rewrite the general version to use:
#if __BYTE_ORDER == __LITTLE_ENDIAN
#elif __BYTE_ORDER == __BIG_ENDIAN
#else
#error "..."
#endif
Andreas
--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.rhein-neckar.de
More information about the Libc-hacker
mailing list