This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

3.3.2 <--> 3.4.2 compatibility?


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]