title: Upgrade to g++ 4.7 (with c++11 support): any ABI incompatibility?
body: <p>On Windows, when using g++ 4.6 (mingw) and -std=c++0x and linking with a third party static library (which was provided by the vendor for use with mingw), the application works fine. When I switched to g++ 4.7.2 (mingw) so that I could use -std=c++11, the application builds fine but crashes when run. If I comment out calls to the vendor provided library then it doesn't crash. I asked customer support of the library vendor and was told that this was not supported.</p>
  
  <p>My question is, "Are there any ABI incompatibilities" when going to a newer version of the g++ compiler? Is it not backward compatible? Aren't newer versions of the compiler supposed to work with existing and legacy 3rd party static libraries?</p>
  
  <p>Note that this only happens on Windows (mingw) platform. Works fine on Linux.</p>
  
  <p>I have added more info on this:</p>
  
  <p>Has anyone used Chilkat's MinGW C++ (static) libraries in a windows application whose source is compiled with g++ 4.7.2 with -std=c++11 compile option? The app crashes when Chilkat api is accessed (for e.g CkString object is instantiated). Works fine on g++ 4.6.2 (where I use std=c++0x).
  On Linux with g++ 4.7.2 this program works fine. If there is ABI incompatibility when moving from 4.6.2 to 4.7.2 then it shouldn't work on Linux also, right? Why would static library chilkat-9.3.2/lib/libchilkat.a created by vendor for use with MINGW care if the rest of the program is compiled with the latest g++ compiler --- is this a MINGW specific change in ABI?</p>
  
  <pre>
  #include &lt;windows.h&gt;
  #include &lt;stdio.h&gt;
  #include &lt;CkString.h&gt;
  int main(int argc, char *argv[]) {
    printf("test chilkat\n");
    CkString str1;
    printf("test done\n");
  }
  </pre>
  
  <pre>
  gdb -i=mi test_chilkat.exe
  Starting program: test_chilkat.exe
  [New Thread 4704.0x1a44]
  
  Program received signal SIGSEGV, Segmentation fault.
  0x00404442 in CkObject::CkObject() ()
  </pre>