compile checksums?
Ned Konz
ned@bike-nomad.com
Tue Sep 8 14:59:00 GMT 2009
On Sep 8, 2009, at 5:33 AM, Paul Boyle wrote:
> Hi,
>
> Hopefully someone on this thread can help me. Every time I compile any
> source code that includes 'iostream' is results in different
> assembler. Does anyone know what the underline reason for this is? Is
> this a known characteristic, or is there a known way of working around
> this? I need to develop a mechanism to guarantee that builds from
> source code generate identical binaries and was planing to use the
> binaries' checksum, but this characteristic is preventing this.
>
> I've tried this different versions of libstdc and am getting similar
> results.
> libstdc++-4.1.2-42.el5
> libstdc++-3.4.6-8
>
> I've reduced the code to the most trivial example possible to
> demonstrate what I am seeing; only including the iostream header.
>
> [pcb@alpha Tmp]$ echo "#include <iostream>" > sum.cpp ; g++ -S sum.cpp
> ; sum sum.s
> 27435 7
> [pcb@alpha Tmp]$ echo "#include <iostream>" > sum.cpp ; g++ -S sum.cpp
> ; sum sum.s
> 64411 7
> [pcb@alpha Tmp]$ echo "#include <iostream>" > sum.cpp ; g++ -S sum.cpp
> ; sum sum.s
> 52977 7
>
You aren't diffing the binaries, though; you're diffing the generated
assembler source. Which appears to be encoding the names differently.
However, aren't the (stripped) binaries identical? The non-stripped
binaries would have the debug info in them, which would differ.
> An example diff is as follows:
> 200,201c200,201
> < .type _GLOBAL__I_sum.cpp_9D2164D3_
> 40537BE5, @function
> < _GLOBAL__I_sum.cpp_9D2164D3_40537BE5:
> ---
>> .type _GLOBAL__I_sum.cpp_9D2164D3_D6DB2116, @function
>> _GLOBAL__I_sum.cpp_9D2164D3_D6DB2116:
> 218c218
> < .size _GLOBAL__I_sum.cpp_9D2164D3_40537BE5,
> .-_GLOBAL__I_sum.cpp_9D2164D3_40537BE5
> ---
>> .size _GLOBAL__I_sum.cpp_9D2164D3_D6DB2116, .-
>> _GLOBAL__I_sum.cpp_9D2164D3_D6DB2116
> 221c221
> < .long _GLOBAL__I_sum.cpp_9D2164D3_40537BE5
> ---
>> .long _GLOBAL__I_sum.cpp_9D2164D3_D6DB2116
>
> Thanks,
--
Ned Konz
Seattle, WA
360-629-1091
http://bike-nomad.com
More information about the Libstdc++
mailing list