Re: Building GCC 4.6.x on Mac OS X

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux