Golfbum, most big/little endian issues will resolve with a recompile. The exceptions are areas where the programmer made shortcut assumptions. For instance, if he writes a long into an array and then accesses the big-endian low byte of that long by taking the address of the array entry and adding 3 then he would get the wrong byte even after a recompile. This is considered abusive programming practice, most programmers will get the long and then cast it as char to get the correct byte.
Let's see, if I remember my C syntax:
char byte_data = *(&array->long_data + 3) /* vs. */
char byte_data = char(array->long_data)
As you can see, it takes a little work to do it incorrectly!
Such examples are very rare. Assembler portions of drivers would be the most likely abusers.