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