Glenn McGrath <[EMAIL PROTECTED]> writes: > The partitioning program im looking at makes calls to __cpu_le16 which > is defined in the /usr/include/linux/byteorder/ directroy but i cant see > an equivalent under the Hurd anywhere.
The Linux definitions look quite portable (apart from their use of __ identifiers) so I think you could just copy them to the program and it would work on the Hurd or any other system. > I dont really understand how endian issues are handled in linux, but i > dont think it should be a problem under the Hurd because its just on one > platform. That may change. And you have to worry about endiannesses anyway if you want to make your binary files compatible with big-endian machines running other operating systems. > If hurd was on different endian type machines would it all be taken care > of by the microkernel anyway ? No. I assume the partitioning program builds the partition table in memory and then writes it to the disk as one chunk. The microkernel does not know the chunk contains integers in some endianness -- all it sees is bytes. The conversion must be done by the program. Mach IPC is a different matter. There every integer is tagged and can be converted. > I guess i should just find a way to ignore endian related code when > compiling under the Hurd. That would work for a while, because numbers in the partition table are stored in native i386 byte order (little endian). But it's still wrong in principle, and will break when the Hurd is ported to a big-endian platform.

