[Vm-dev] linux build stability

David T. Lewis lewis at mail.msen.com
Wed Feb 2 19:39:03 UTC 2011


Sorry to keep replying to myself, but one more followup. In each case
for which differences exists after stripping the symbol table, the
difference is due to a date stamp string.

In the case of sqUnixMain.c, it is the VM_BUILD_STRING macro used in
getAttribute(). The version.c file contains also a date string. Both
of these date strings are created by configure. After accounting for
these and after stripping the the symbol tables, I see no remaining
differences in executable code.

I can't explain why the compiler might generated different symbol
tables, but given that the resulting executables end up being identical
except for the date string macros, this does not look like an issue
that would affect run time stability.

Dave

On Wed, Feb 02, 2011 at 02:04:06PM -0500, David T. Lewis wrote:
>  
> For what it's worth, some but not all of the differences go away
> if the files are stripped to remove symbol tables. The remaining 
> differences seem to be in version.o and sqUnixMain.o.
> 
> HTH,
> - Dave (enjoying a day off work with a foot of beautiful fresh new
>   snow here in Michigan, a pot of good coffee, birds swarming around
>   the bird feeder, and light snowflakes drifting horizontally past
>   the window)
> 
> Comparing files after configure/make:
> 
> squeak
> squeak ../bldb/squeak differ: byte 845880, line 1305
> squeak ../bldc/squeak differ: byte 845879, line 1305
> disabledPlugins.o
> disabledPlugins.o ../bldb/disabledPlugins.o differ: byte 197, line 4
> disabledPlugins.o ../bldc/disabledPlugins.o differ: byte 197, line 4
> version.o
> version.o ../bldb/version.o differ: byte 158, line 2
> version.o ../bldc/version.o differ: byte 158, line 2
> vm/debug.o
> vm/debug.o ../bldb/vm/debug.o differ: byte 776, line 8
> vm/debug.o ../bldc/vm/debug.o differ: byte 776, line 8
> vm/sqHeapMap.o
> vm/sqHeapMap.o ../bldb/vm/sqHeapMap.o differ: byte 2400, line 7
> vm/sqHeapMap.o ../bldc/vm/sqHeapMap.o differ: byte 803, line 5
> vm/sqNamedPrims.o
> vm/sqNamedPrims.o ../bldb/vm/sqNamedPrims.o differ: byte 7343, line 21
> vm/sqNamedPrims.o ../bldc/vm/sqNamedPrims.o differ: byte 7343, line 21
> vm/sqUnixCharConv.o
> vm/sqUnixCharConv.o ../bldb/vm/sqUnixCharConv.o differ: byte 2804, line 20
> vm/sqUnixCharConv.o ../bldc/vm/sqUnixCharConv.o differ: byte 2804, line 20
> vm/sqUnixMain.o
> vm/sqUnixMain.o ../bldb/vm/sqUnixMain.o differ: byte 12285, line 46
> vm/sqUnixMain.o ../bldc/vm/sqUnixMain.o differ: byte 12294, line 46
> 
> After stripping the object files and squeak executable:
> 
> squeak
> squeak ../bldb/squeak differ: byte 845880, line 1305
> squeak ../bldc/squeak differ: byte 845879, line 1305
> disabledPlugins.o
> version.o
> version.o ../bldb/version.o differ: byte 84, line 2
> version.o ../bldc/version.o differ: byte 83, line 2
> vm/debug.o
> vm/sqHeapMap.o
> vm/sqNamedPrims.o
> vm/sqUnixCharConv.o
> vm/sqUnixMain.o
> vm/sqUnixMain.o ../bldb/vm/sqUnixMain.o differ: byte 13999, line 54
> vm/sqUnixMain.o ../bldc/vm/sqUnixMain.o differ: byte 13998, line 54
> 
> 
> 
> On Wed, Feb 02, 2011 at 12:40:14PM -0500, David T. Lewis wrote:
> > On Tue, Feb 01, 2011 at 10:17:35PM -0800, Eliot Miranda wrote:
> > > 
> > > I wonder
> > > - do you see the same effect?
> > > - does this happen with gcc versions other than 4.1.2?
> > > - does it happen on non-RHEL-derived distros?
> > 
> > Yes, yes, and yes. I get similar results reproducing your tests on
> > SuSE 64, gcc 4.5.0 (see below).
> > 
> > > - is this a meaningful signal or just harmless noise?
> > 
> > Given that the following are all identical I would somewhat favor
> > the harmless noise theory:
> >   vm/sqTicker.o
> >   vm/gcc3x-cointerp.o
> >   vm/sqTicker.o
> >   vm/sqUnixMemory.o
> >   vm/sqUnixThreads.o
> >   vm/sqUnixVMProfile.o
> > 
> > Test results on my system:
> > 
> > $ uname -a
> > 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
> > $ cat /proc/version
> > Linux version 2.6.34.7-0.7-desktop (geeko at 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
> > $  gcc --version
> > gcc (SUSE Linux) 4.5.0 20100604 [gcc-4_5-branch revision 160292]
> > Copyright (C) 2010 Free Software Foundation, Inc.
> > This is free software; see the source for copying conditions.  There is NO
> > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> > 
> > The configuration is:
> > ../../platforms/unix/config/configure CC="gcc -m32" CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LDFLAGS="-m32" LIBS=-lpthread
> > 
> > I manually edited ALSA out of the Makefiles (libtool problem, probably missing the 32-bit libraries).
> > 
> > Generated new sources from using image/VMMaker-Squeak4.1.image (from SVN).
> > 
> > Built three times in blda, bldb, bldc with the same configure/make.
> > 
> > Ran script from blda:
> > for f in *.o vm/*.o
> > do
> >   echo $f
> >   cmp $f ../bldb/$f
> >   cmp $f ../bldc/$f
> > done
> > 
> > Results:
> > disabledPlugins.o
> > disabledPlugins.o ../bldb/disabledPlugins.o differ: byte 197, line 4
> > disabledPlugins.o ../bldc/disabledPlugins.o differ: byte 197, line 4
> > version.o
> > version.o ../bldb/version.o differ: byte 158, line 2
> > version.o ../bldc/version.o differ: byte 158, line 2
> > vm/aio.o
> > vm/cogit.o
> > vm/debug.o
> > vm/debug.o ../bldb/vm/debug.o differ: byte 776, line 8
> > vm/debug.o ../bldc/vm/debug.o differ: byte 776, line 8
> > vm/gcc3x-cointerp.o
> > vm/osExports.o
> > vm/sqExternalSemaphores.o
> > vm/sqHeapMap.o
> > vm/sqHeapMap.o ../bldb/vm/sqHeapMap.o differ: byte 2400, line 7
> > vm/sqHeapMap.o ../bldc/vm/sqHeapMap.o differ: byte 803, line 5
> > vm/sqNamedPrims.o
> > vm/sqNamedPrims.o ../bldb/vm/sqNamedPrims.o differ: byte 7343, line 21
> > vm/sqNamedPrims.o ../bldc/vm/sqNamedPrims.o differ: byte 7343, line 21
> > vm/sqTicker.o
> > vm/sqUnixCharConv.o
> > vm/sqUnixCharConv.o ../bldb/vm/sqUnixCharConv.o differ: byte 2804, line 20
> > vm/sqUnixCharConv.o ../bldc/vm/sqUnixCharConv.o differ: byte 2804, line 20
> > vm/sqUnixExternalPrims.o
> > vm/sqUnixHeartbeat.o
> > vm/sqUnixMain.o
> > vm/sqUnixMain.o ../bldb/vm/sqUnixMain.o differ: byte 12285, line 46
> > vm/sqUnixMain.o ../bldc/vm/sqUnixMain.o differ: byte 12294, line 46
> > vm/sqUnixMemory.o
> > vm/sqUnixThreads.o
> > vm/sqUnixVMProfile.o
> > vm/sqVirtualMachine.o


More information about the Vm-dev mailing list