[Bug c++/61811] New: [4.10 Regression] Firefox LTO build error due to undefined symbols
trippels at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jul 15 13:52:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61811
Bug ID: 61811
Summary: [4.10 Regression] Firefox LTO build error due to
undefined symbols
Product: gcc
Version: 4.10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: trippels at gcc dot gnu.org
CC: hubicka at ucw dot cz, jason at gcc dot gnu.org
Firefox doesn't build with -flto on trunk. It fails due to undefined symbols
during linking of libxul. This only happens if -flto, -fno-rtti and
-fuse-all-virtuals are all enabled during the build.
Reduced testcase:
markus@x4 signaling_ecc % cat CC_SIPCCLine.ii
template <class T> class nsRefPtr
{
T *mRawPtr;
public:
typedef T element_type;
~nsRefPtr () { mRawPtr->Release (); }
void get ();
};
namespace CSF
{
class CC_Call
{
public:
void Release () { delete this; }
virtual ~CC_Call ();
};
class CC_SIPCCCallMediaData
{
public:
void Release ();
};
class A : public CC_Call
{
public:
static nsRefPtr<CSF::A> wrap (int);
nsRefPtr<CSF::CC_SIPCCCallMediaData> pMediaData;
};
}
using namespace CSF;
void fn1 () { A::wrap (0).get (); }
markus@x4 signaling_ecc % c++filt
_ZN8nsRefPtrIN3CSF21CC_SIPCCCallMediaDataEED1Ev
nsRefPtr<CSF::CC_SIPCCCallMediaData>::~nsRefPtr()
markus@x4 signaling_ecc % c++ -o CC_SIPCCLine.o -c -fno-rtti -flto -O2
CC_SIPCCLine.ii
markus@x4 signaling_ecc % nm CC_SIPCCLine.o | grep
_ZN8nsRefPtrIN3CSF21CC_SIPCCCallMediaDataEED1Ev
U _ZN8nsRefPtrIN3CSF21CC_SIPCCCallMediaDataEED1Ev
markus@x4 signaling_ecc % c++ -o CC_SIPCCLine.o -c -flto -O2 CC_SIPCCLine.ii
markus@x4 signaling_ecc % nm CC_SIPCCLine.o | grep
_ZN8nsRefPtrIN3CSF21CC_SIPCCCallMediaDataEED1Ev
markus@x4 signaling_ecc % c++ -o CC_SIPCCLine.o -c -O2 CC_SIPCCLine.ii
markus@x4 signaling_ecc % nm CC_SIPCCLine.o | grep
_ZN8nsRefPtrIN3CSF21CC_SIPCCCallMediaDataEED1Ev
markus@x4 signaling_ecc % c++ -o CC_SIPCCLine.o -c -fno-rtti -O2
CC_SIPCCLine.ii
markus@x4 signaling_ecc % nm CC_SIPCCLine.o | grep
_ZN8nsRefPtrIN3CSF21CC_SIPCCCallMediaDataEED1Ev
markus@x4 signaling_ecc % c++ -o CC_SIPCCLine.o -c -fno-use-all-virtuals
-fno-rtti -flto -O2 CC_SIPCCLine.ii
markus@x4 signaling_ecc % nm CC_SIPCCLine.o | grep
_ZN8nsRefPtrIN3CSF21CC_SIPCCCallMediaDataEED1Ev
markus@x4 signaling_ecc %
More information about the Gcc-bugs
mailing list