This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
3.3.2 <--> 3.4.2 compatibility?
- From: Steve Snyder <R00020C at freescale dot com>
- To: gcc at gcc dot gnu dot org
- Date: Tue, 1 Mar 2005 10:34:48 -0500
- Subject: 3.3.2 <--> 3.4.2 compatibility?
- Organization: Freescale Semiconductor
Should there be binary compatibility between GCC versions 3.3.2 and
3.4.2?
I have a large (~40 source files) C++ application that builds and runs
correctly with GCC v3.3.2 (in Fedora Core #1). With GCC v3.4.2 (FC3)
the application builds correctly, yet fails to run correctly.
No errors or warnings are seen in either build. I did static builds
both times to minimize environmental factors when I do test runs on
the same machine. The code is supposed to communicate with a PCI
device. Communications are fine with the v3.3.2 build and fail
completely with the v3.4.2 build.
Since it would ber a major job to determine which snippet of code had
silently mis-compiled, my brainstorm was to replace the objects files
in the "good" build, one by one, until the app failed. Alas, this
scheme consistently gets me unresolved external references.
Specifically, I get many, many occurances of this (on the 3.4.3
system):
/usr/include/c++/3.3.2/bits/stl_alloc.h:232: undefined reference to
`std::__default_alloc_template<true, 0>::allocate(unsigned int)'
Shouldn't there be binary compatibility between these 2 versions of
GCC?
Thanks.