compile zImage give different binary file in 32bit and 64bit system

Werner Almesberger werner at
Sun Sep 26 04:06:19 EDT 2010

Xiangfu Liu wrote:

This looks like a tricky one. There are first lots of small differences
in what appear to be offsets and such. Unfortunately, without a clear
pattern - some change a bit, some a lot, some increase, and some
decrease.  Differences get worse towards the end of .rodata and in
.__ksymtab*. Then, after 0x803f5024, deep in .data, both separate
completely for about 25% of the file.

One obvious difference are things like linux_banner and
linux_proc_banner, i.e., anything that depends on things in
include/generated/compile.h. It may be worth comparing the other files
in include/generated/ as well, just to be sure.

Once you get rid of these differences, things may calm down a bit.

I can't quite predict what the next step would be, in case there are
still differences. If there's still a lot, perhaps look for more easy to
find ones, like the banners.

If there's less, it may help to pick a file with a simple difference and
look at the assembler code generated, before linking. There are probably
more elegant ways to do this, but if I want some kernel file's assembly
code, I simply make it with V=1, then copy and paste the command,
adding -S.

Of course, the crash may have a completely unrelated cause :-)

- Werner

More information about the discussion mailing list