On 30 October 2011 22:38, Mihai Moldovan wrote: >> If ld can't be linked with your new libstdc++ then it is probably due >> to an ABI compatibility. My guess would be something to do with >> fully-dynamic-string but you claim that's being used correctly. How >> was the system libstdc++ configured? How are you configuring your gcc >> builds? > > I suspect that too, but the build system should really not force the > libstdc++ on ld, or things like that may happen. > If I interpret www.ionic.de/libstdc++3.diff correctly (diff between GCC > 4.5.3 and GCC 4.6.2 libstdc++ with some fuzzyness), the ABI version > changed from 6 to 7. Commonly this happens on breaking ABI changes. No, the library ABI version has not changed. The libstdc++ from GCC 4.6 is backward compatible with the one from libstdc++ 4.5 > However, even though GCC 4.5.3 libstdc++ had ABI version 6, it can't be > used by ld either, so there is definitely some incompatibility. Then you're building it differently, with some option that causes an incompatibility. > Configure line: > ../gcc-4.6.1/configure --prefix=/opt/local --build=x86_64-apple-darwin10 > --enable-languages=c,c++,objc,obj-c++,lto,fortran > --libdir=/opt/local/lib/gcc46 --includedir=/opt/local/include/gcc46 > --infodir=/opt/local/share/info --mandir=/opt/local/share/man > --datarootdir=/opt/local/share/gcc-4.6 --with-local-prefix=/opt/local > --with-libiconv-prefix=/opt/local --with-system-zlib --disable-nls > --program-suffix=-mp-4.6 > --with-gxx-include-dir=/opt/local/include/gcc46/c++/ > --with-gmp=/opt/local --with-mpfr=/opt/local --with-mpc=/opt/local > --with-ppl=/opt/local --enable-stage1-checking --disable-multilib > --enable-fully-dynamic-string And how was the system compiler (and therefore the system libstdc++) configured? > I'll try to rebuild with --disable-fully-dynamic-string, but per > http://newartisans.com/2009/10/a-c-gotcha-on-snow-leopard/ I assume this > feature is used in the libc and thus cause even more problems then it > solves. You can try it, but I doubt it will work. If system libraries on Mac OS X use fully-dynamic-string (which I believe they still do) then you need to use that for your build too.