[Vm-dev] linux build stability

Eliot Miranda eliot.miranda at gmail.com
Wed Feb 2 20:35:22 UTC 2011


On Wed, Feb 2, 2011 at 11:39 AM, David T. Lewis <lewis at mail.msen.com> wrote:

> 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.
>

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!


> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20110202/432f3b12/attachment.htm


More information about the Vm-dev mailing list