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.