More info: Binary built on different platforms with exact same tools different?
Rick Mann
rmann@latencyzero.com
Tue Dec 18 00:54:00 GMT 2007
On Dec 17, 2007, at 4:43 PM, Rick Mann wrote:
> Hi. I've built an xscale-elf toolchain from gcc-4.2.2,
> binutils-2.17, newlib-1.15.0. I've used the exact same build
> procedure on both Mac OS X 10.5 (gcc-4.0.1-based) and Cygwin (gcc
> 3.4-based).
>
> Then I built our code and stripped the resulting binary with objcopy
> on each platform.
>
> Both binaries seem to run the same.
>
> However, cmp shows many differences between the two resulting
> binaries. Here are a few:
>
> $ cmp -l ~/h h | head -10
> 77 21 63
> 81 32 74
> 85 27 71
> 97 370 220
> 98 162 163
> 101 134 364
> 105 134 364
> 141 4 15
> 143 55 240
> 144 345 341
>
>
> Are these differences something to worry about?
I've disassembled the .elf files, and here are some of the differences:
Mac OS X:
8000804c <loop>:
8000804c: eb00a933 bl 80032520 <_init>
80008050: eb000c3c bl 8000b148 <main>
80008054: eb00a939 bl 80032540 <_fini>
80008058: eaffffe8 b 80008000 <//.>
8000805c: e89da800 ldmia sp, {fp, sp, pc}
...
80008060 <bss_start>:
80008060: 80047390 mulhi r4, r0, r3
80008064 <bss_end>:
80008064: 803a51f4 ldrhisht r5, [sl], -r4
Cygwin:
8000804c <loop>:
8000804c: eb00a911 bl 80032498 <_init>
80008050: eb000c1a bl 8000b0c0 <main>
80008054: eb00a917 bl 800324b8 <_fini>
80008058: eaffffe8 b 80008000 <//.>
8000805c: e89da800 ldmia sp, {fp, sp, pc}
...
80008060 <bss_start>:
80008060: 800472f8 strhid r7, [r4], -r8
80008064 <bss_end>:
80008064: 803a515c eorhis r5, sl, ip, asr r1
Some functions are placed in different order, too.
I'm trying to ensure that all our developers build identical binaries.
TIA,
--
Rick
More information about the Gcc-help
mailing list