64 bit kernel in 32 bit system

Kevin Kofler kevin.kofler at chello.at
Sun Apr 12 10:23:00 UTC 2009


Bill Davidsen wrote:
> Some people are paid to develop system software, some of us have to work
> for a living.[1] Hybrid systems are a PITA, if there's a need to work with
> 32 bit it's vastly easier to run a 32 bit system than to try to avoid
> behavioral differences between 32 and 64 bit software even when built from
> the same source.

If the source is behaving differently in 32-bit or 64-bit environments, the
source is broken. The sooner you find out, the better. People need to stop
writing non-portable code. (Hint: A long is not an int. Neither is a
size_t. Use int32_t (or "int" if you need to support systems with no
stdint.h, though that'll break on 16-bit systems if you need to still
support those - in that case you'll have to do some #ifdef) if you need
something always 32 bits, not long! Don't use int * and long *
interchangeably, they're different. Don't print a size_t with %u (or
worse, %d). The most portable solution is to cast it to unsigned long and
print the result with %lu.) Only ever testing on 32-bit systems isn't going
to help there.

        Kevin Kofler




More information about the fedora-list mailing list