<br><br><div class="gmail_quote">On Wed, Feb 2, 2011 at 11:39 AM, David T. Lewis <span dir="ltr">&lt;<a href="mailto:lewis@mail.msen.com">lewis@mail.msen.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Sorry to keep replying to myself, but one more followup. In each case<br>
for which differences exists after stripping the symbol table, the<br>
difference is due to a date stamp string.<br>
<br>
In the case of sqUnixMain.c, it is the VM_BUILD_STRING macro used in<br>
getAttribute(). The version.c file contains also a date string. Both<br>
of these date strings are created by configure. After accounting for<br>
these and after stripping the the symbol tables, I see no remaining<br>
differences in executable code.<br>
<br>
I can&#39;t explain why the compiler might generated different symbol<br>
tables, but given that the resulting executables end up being identical<br>
except for the date string macros, this does not look like an issue<br>
that would affect run time stability.<br></blockquote><div><br></div><div>Agreed.  Looking more carefully this morning using -save-temps to save the post-processed .i and output .s I see that all differences are valid.  Thanks David!</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
Dave<br>
<div><div></div><div class="h5"><br>
On Wed, Feb 02, 2011 at 02:04:06PM -0500, David T. Lewis wrote:<br>
&gt;<br>
&gt; For what it&#39;s worth, some but not all of the differences go away<br>
&gt; if the files are stripped to remove symbol tables. The remaining<br>
&gt; differences seem to be in version.o and sqUnixMain.o.<br>
&gt;<br>
&gt; HTH,<br>
&gt; - Dave (enjoying a day off work with a foot of beautiful fresh new<br>
&gt;   snow here in Michigan, a pot of good coffee, birds swarming around<br>
&gt;   the bird feeder, and light snowflakes drifting horizontally past<br>
&gt;   the window)<br>
&gt;<br>
&gt; Comparing files after configure/make:<br>
&gt;<br>
&gt; squeak<br>
&gt; squeak ../bldb/squeak differ: byte 845880, line 1305<br>
&gt; squeak ../bldc/squeak differ: byte 845879, line 1305<br>
&gt; disabledPlugins.o<br>
&gt; disabledPlugins.o ../bldb/disabledPlugins.o differ: byte 197, line 4<br>
&gt; disabledPlugins.o ../bldc/disabledPlugins.o differ: byte 197, line 4<br>
&gt; version.o<br>
&gt; version.o ../bldb/version.o differ: byte 158, line 2<br>
&gt; version.o ../bldc/version.o differ: byte 158, line 2<br>
&gt; vm/debug.o<br>
&gt; vm/debug.o ../bldb/vm/debug.o differ: byte 776, line 8<br>
&gt; vm/debug.o ../bldc/vm/debug.o differ: byte 776, line 8<br>
&gt; vm/sqHeapMap.o<br>
&gt; vm/sqHeapMap.o ../bldb/vm/sqHeapMap.o differ: byte 2400, line 7<br>
&gt; vm/sqHeapMap.o ../bldc/vm/sqHeapMap.o differ: byte 803, line 5<br>
&gt; vm/sqNamedPrims.o<br>
&gt; vm/sqNamedPrims.o ../bldb/vm/sqNamedPrims.o differ: byte 7343, line 21<br>
&gt; vm/sqNamedPrims.o ../bldc/vm/sqNamedPrims.o differ: byte 7343, line 21<br>
&gt; vm/sqUnixCharConv.o<br>
&gt; vm/sqUnixCharConv.o ../bldb/vm/sqUnixCharConv.o differ: byte 2804, line 20<br>
&gt; vm/sqUnixCharConv.o ../bldc/vm/sqUnixCharConv.o differ: byte 2804, line 20<br>
&gt; vm/sqUnixMain.o<br>
&gt; vm/sqUnixMain.o ../bldb/vm/sqUnixMain.o differ: byte 12285, line 46<br>
&gt; vm/sqUnixMain.o ../bldc/vm/sqUnixMain.o differ: byte 12294, line 46<br>
&gt;<br>
&gt; After stripping the object files and squeak executable:<br>
&gt;<br>
&gt; squeak<br>
&gt; squeak ../bldb/squeak differ: byte 845880, line 1305<br>
&gt; squeak ../bldc/squeak differ: byte 845879, line 1305<br>
&gt; disabledPlugins.o<br>
&gt; version.o<br>
&gt; version.o ../bldb/version.o differ: byte 84, line 2<br>
&gt; version.o ../bldc/version.o differ: byte 83, line 2<br>
&gt; vm/debug.o<br>
&gt; vm/sqHeapMap.o<br>
&gt; vm/sqNamedPrims.o<br>
&gt; vm/sqUnixCharConv.o<br>
&gt; vm/sqUnixMain.o<br>
&gt; vm/sqUnixMain.o ../bldb/vm/sqUnixMain.o differ: byte 13999, line 54<br>
&gt; vm/sqUnixMain.o ../bldc/vm/sqUnixMain.o differ: byte 13998, line 54<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Wed, Feb 02, 2011 at 12:40:14PM -0500, David T. Lewis wrote:<br>
&gt; &gt; On Tue, Feb 01, 2011 at 10:17:35PM -0800, Eliot Miranda wrote:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I wonder<br>
&gt; &gt; &gt; - do you see the same effect?<br>
&gt; &gt; &gt; - does this happen with gcc versions other than 4.1.2?<br>
&gt; &gt; &gt; - does it happen on non-RHEL-derived distros?<br>
&gt; &gt;<br>
&gt; &gt; Yes, yes, and yes. I get similar results reproducing your tests on<br>
&gt; &gt; SuSE 64, gcc 4.5.0 (see below).<br>
&gt; &gt;<br>
&gt; &gt; &gt; - is this a meaningful signal or just harmless noise?<br>
&gt; &gt;<br>
&gt; &gt; Given that the following are all identical I would somewhat favor<br>
&gt; &gt; the harmless noise theory:<br>
&gt; &gt;   vm/sqTicker.o<br>
&gt; &gt;   vm/gcc3x-cointerp.o<br>
&gt; &gt;   vm/sqTicker.o<br>
&gt; &gt;   vm/sqUnixMemory.o<br>
&gt; &gt;   vm/sqUnixThreads.o<br>
&gt; &gt;   vm/sqUnixVMProfile.o<br>
&gt; &gt;<br>
&gt; &gt; Test results on my system:<br>
&gt; &gt;<br>
&gt; &gt; $ uname -a<br>
&gt; &gt; Linux linux-jh8m 2.6.34.7-0.7-desktop #1 SMP PREEMPT 2010-12-13 11:13:53 +0100 x86_64 x86_64 x86_64 GNU/Linux<br>
&gt; &gt; $ cat /proc/version<br>
&gt; &gt; Linux version 2.6.34.7-0.7-desktop (geeko@buildhost) (gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] (SUSE Linux) ) #1 SMP PREEMPT 2010-12-13 11:13:53 +0100<br>
&gt; &gt; $  gcc --version<br>
&gt; &gt; gcc (SUSE Linux) 4.5.0 20100604 [gcc-4_5-branch revision 160292]<br>
&gt; &gt; Copyright (C) 2010 Free Software Foundation, Inc.<br>
&gt; &gt; This is free software; see the source for copying conditions.  There is NO<br>
&gt; &gt; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.<br>
&gt; &gt;<br>
&gt; &gt; The configuration is:<br>
&gt; &gt; ../../platforms/unix/config/configure CC=&quot;gcc -m32&quot; CFLAGS=&quot;-g -O2 -msse2 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0&quot; LDFLAGS=&quot;-m32&quot; LIBS=-lpthread<br>

&gt; &gt;<br>
&gt; &gt; I manually edited ALSA out of the Makefiles (libtool problem, probably missing the 32-bit libraries).<br>
&gt; &gt;<br>
&gt; &gt; Generated new sources from using image/VMMaker-Squeak4.1.image (from SVN).<br>
&gt; &gt;<br>
&gt; &gt; Built three times in blda, bldb, bldc with the same configure/make.<br>
&gt; &gt;<br>
&gt; &gt; Ran script from blda:<br>
&gt; &gt; for f in *.o vm/*.o<br>
&gt; &gt; do<br>
&gt; &gt;   echo $f<br>
&gt; &gt;   cmp $f ../bldb/$f<br>
&gt; &gt;   cmp $f ../bldc/$f<br>
&gt; &gt; done<br>
&gt; &gt;<br>
&gt; &gt; Results:<br>
&gt; &gt; disabledPlugins.o<br>
&gt; &gt; disabledPlugins.o ../bldb/disabledPlugins.o differ: byte 197, line 4<br>
&gt; &gt; disabledPlugins.o ../bldc/disabledPlugins.o differ: byte 197, line 4<br>
&gt; &gt; version.o<br>
&gt; &gt; version.o ../bldb/version.o differ: byte 158, line 2<br>
&gt; &gt; version.o ../bldc/version.o differ: byte 158, line 2<br>
&gt; &gt; vm/aio.o<br>
&gt; &gt; vm/cogit.o<br>
&gt; &gt; vm/debug.o<br>
&gt; &gt; vm/debug.o ../bldb/vm/debug.o differ: byte 776, line 8<br>
&gt; &gt; vm/debug.o ../bldc/vm/debug.o differ: byte 776, line 8<br>
&gt; &gt; vm/gcc3x-cointerp.o<br>
&gt; &gt; vm/osExports.o<br>
&gt; &gt; vm/sqExternalSemaphores.o<br>
&gt; &gt; vm/sqHeapMap.o<br>
&gt; &gt; vm/sqHeapMap.o ../bldb/vm/sqHeapMap.o differ: byte 2400, line 7<br>
&gt; &gt; vm/sqHeapMap.o ../bldc/vm/sqHeapMap.o differ: byte 803, line 5<br>
&gt; &gt; vm/sqNamedPrims.o<br>
&gt; &gt; vm/sqNamedPrims.o ../bldb/vm/sqNamedPrims.o differ: byte 7343, line 21<br>
&gt; &gt; vm/sqNamedPrims.o ../bldc/vm/sqNamedPrims.o differ: byte 7343, line 21<br>
&gt; &gt; vm/sqTicker.o<br>
&gt; &gt; vm/sqUnixCharConv.o<br>
&gt; &gt; vm/sqUnixCharConv.o ../bldb/vm/sqUnixCharConv.o differ: byte 2804, line 20<br>
&gt; &gt; vm/sqUnixCharConv.o ../bldc/vm/sqUnixCharConv.o differ: byte 2804, line 20<br>
&gt; &gt; vm/sqUnixExternalPrims.o<br>
&gt; &gt; vm/sqUnixHeartbeat.o<br>
&gt; &gt; vm/sqUnixMain.o<br>
&gt; &gt; vm/sqUnixMain.o ../bldb/vm/sqUnixMain.o differ: byte 12285, line 46<br>
&gt; &gt; vm/sqUnixMain.o ../bldc/vm/sqUnixMain.o differ: byte 12294, line 46<br>
&gt; &gt; vm/sqUnixMemory.o<br>
&gt; &gt; vm/sqUnixThreads.o<br>
&gt; &gt; vm/sqUnixVMProfile.o<br>
&gt; &gt; vm/sqVirtualMachine.o<br>
</div></div></blockquote></div><br>