Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019 
<== Date ==> <== Thread ==>

Subject: Re: "Size of symbol changed" warnings building EPICS Base 3.14.12.2
From: Andrew Johnson <anj@aps.anl.gov>
To: tech-talk@aps.anl.gov
Date: Wed, 7 Mar 2012 11:02:30 -0600
Hi Dirk,

> On 3/7/12 2:50 AM, Dirk Zimoch wrote:
> > These two functions,
> > epicsSingleton<localHostName>::reference::~reference(void) and
> > epicsSingleton<localHostName>::reference::operator->(void) both
> > contain 'assert' (see src/libCom/cxxTemplates/epicsSingleton.h).
> >
> > 'assert' is a macro:
> > #   define assert(exp) ((exp) ? (void)0 : \
> >         epicsAssert(__FILE__, __LINE__, #exp, epicsAssertAuthor))
> >
> > Depending on the optimization level, '(void)0' may be eliminated
> > and the code becomes shorter (by 4 bytes = 1 PPC instruction).
> >
> > Try to 'make clean' in the epics base top directory and compile
> > again.

The problem is more subtle than that, although I suspect that different 
optimization levels is probably the underlying cause.

Remember Lewis is using a very old version of g++, from back when C++ 
templates were new; my guess is that ldppc is recompiling the template 
instances it needs to link the code behind the scenes, but it wasn't told the 
optimization level that g++ppc used to compile the instances that appear in 
the .o files it's linking with so it doesn't get the same length code and 
generates that warning.  There may be a flag we could turn on to show more 
about what's going on inside ldppc, but it's really not worth looking into 
IMHO; better to spend the time upgrading to vxWorks 5.5.

- Andrew
-- 
Never interrupt your enemy when he is making a mistake.
-- Napoleon Bonaparte

Replies:
Re: "Size of symbol changed" warnings building EPICS Base 3.14.12.2 Dirk Zimoch
References:
"Size of symbol changed" warnings building EPICS Base 3.14.12.2 J. Lewis Muir
Re: "Size of symbol changed" warnings building EPICS Base 3.14.12.2 Dirk Zimoch
Re: "Size of symbol changed" warnings building EPICS Base 3.14.12.2 J. Lewis Muir

Navigate by Date:
Prev: motor module R6-7-1 released Ron Sluiter
Next: COV service for EPICS BACnet-driver is ready. Webb, Steven B.
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019 
Navigate by Thread:
Prev: Re: "Size of symbol changed" warnings building EPICS Base 3.14.12.2 J. Lewis Muir
Next: Re: "Size of symbol changed" warnings building EPICS Base 3.14.12.2 Dirk Zimoch
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·