1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 <2012> 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 <2012> 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: "Size of symbol changed" warnings building EPICS Base 3.14.12.2 |
From: | Dirk Zimoch <[email protected]> |
To: | "J. Lewis Muir" <[email protected]> |
Cc: | EPICS Tech Talk <[email protected]> |
Date: | Wed, 07 Mar 2012 09:50:56 +0100 |
Hi Lewis,Can it be that you did not do a "make clean" when you changed the optimization level?
I am speculating a bit now: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. Dirk J. Lewis Muir wrote:
On 3/2/12 10:51 AM, J. Lewis Muir wrote:When building EPICS Base 3.14.12.2 (+ Known Problems patches) for vxWorks-ppc603, vxWorks-ppc604, and vxWorks-ppc604_long, I'm getting warnings like this: === /opt/vxworks-tornado-2.0.2/host/x86-linux/bin/ldppc -r -o callbackTest -L../../../../lib/vxWorks-ppc603/ -L/opt/vxworks-tornado-2.0.2/host/x86-linux/powerpc-wrs-vxworks/lib callbackTest.o -ldbIoc -ldbStaticIoc -lca -lCom Warning: size of symbol `_$_Q2t14epicsSingleton1Z13localHostName9reference' changed from 160 to 164 in cac.o Warning: size of symbol `__rf__Q2t14epicsSingleton1Z13localHostName9reference' changed from 128 to 132 in cac.o ===I happened to be compiling with -O0. I tried compiling with -O2 and these "size of symbol changed" warnings went away. Strange. Lewis