[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bugs in g++ on Sarge?



 Folks,

   I'm trying to determine if I've found bugs in the C++ compiler
on Sarge or not.  I'm trying to compile quickfix-1.9.2 and some of
my own codes which link to it, and I'm repeatedly getting internal
compiler errors.  I've posted about it on the quickfix mailing list
and gotten zero response.  This is a heavily used codebase in the
financial industry; there are dozens of big companies who use it as
a basis for their internal and external communications of financial
data.  The point being that this is a library of code that is very
well supported and strongly scrutinized, and used in production
where literally millions of dollars a day depend on it.  A lot of
people claim to be running it on Linux, but it looks like it gets
much more use on Solaris or even (ack!) Windows.

   Here's an example of the sort of errors I'm getting:

----- begin text -----
 g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -I.. -g -O2
-I/usr/include/stlport -I/opt/RAIDD/db/mysql/include/mysql
-I/usr/include/libxml2 -I/include -I/include/linux -O0 -g -MT
MessagesTestCase.lo -MD -MP -MF .deps/MessagesTestCase.Tpo -c
MessagesTestCase.cpp  -fPIC -DPIC -o .libs/MessagesTestCase.o
In file included from ../Message.h:33,
                 from MessagesTestCase.h:26,
                 from MessagesTestCase.cpp:27:
/usr/include/stlport/stl/_tree.h: In member function `typename
   _Traits::reference _STL::_Rb_tree_iterator<_Value,
_Traits>::operator*()
   const [with _Value = _STL::pair<const _STL::string, _STL::set<int,
   _STL::less<int>, _STL::allocator<int> > >, _Traits =
   _STL::_Const_traits<_STL::pair<const _STL::string, _STL::set<int,
   _STL::less<int>, _STL::allocator<int> > > >]':

Internal compiler error: Error reporting routines re-entered.
Please submit a full bug report,
with preprocessed source if appropriate.
For Debian GNU/Linux specific bug reporting instructions, see
<URL:http://gcc.gnu.org/bugs.html>.
----- end text -----

   I also get lots of these:

free(): invalid pointer 0x8dcb250!
free(): invalid pointer 0x8dc9610!

   The bugs are *not* repeatable.  I can type make, have the make
choke on something like the above, type make again, and it will get
through the compile.  The same thing happens with my own codes that
include the headers for quickfix.  The library makes heavy use of
templates.  I am not enough of an expert on C++ to be able to be a
lot of help, here.  I'm using version 3.3.4-13.  The machine is an
Athlon 1GHz with 1.5 GB of RAM.  It is a straight install of Sarge,
upgraded from Woody about 2 months ago.  It was totally up to date
when I ran the compiles, with an apt-get update/upgrade done just
the day before.

   The codebase is available under a BSD license for download from
http://www.quickfixengine.org for anyone who wants to try it out.
I'd really appreciate some feedback on this.  Is this a g++ bug?  Is
it a hardware problem?  I compile many other large codebases (all C)
on a regular basis with no problems.  I'm not getting signal 11s or
anything to indicate that I have bad RAM, and if I did, why am I not
having problems with my other codes?  Could my install be corrupted
somehow?  But if that's the case, how does an installation get in a
state where it's just corrupted enough to cause these very specific
problems but nothing else?  I'm totally stumped at this point.  Can
anyone help?

thanks,
Jim



Reply to: