libstdc++.6.dylib only 64-bit even though "--with-multilib=all"

Philip Herron redbrain@gcc.gnu.org
Thu Sep 16 23:38:00 GMT 2010


On 16 September 2010 19:14,  <TorstenSteinert@web.de> wrote:
> Hi folks,
>
> I have  built the gcc version 4.5.1 on my MacBook Air running MacOS X Snow Leopard (to create a native gcc).
>
> I used the following configure options:  ../gcc-4.5.1-src/configure --prefix=/usr --with-multilib=all --program-suffix=-4.5.1
> Because of the parameter --with-multilib=all, I expected that the resulting gcc toolchain will allow me to make both 32 and 64 bit software.
> For that I also expected the standard libraries to be muli-format (mulitlib?).
>
> But libstdc++.6 is only in 64 bit format:
> bash-3.2$ file /usr/lib/libstdc++.6.dylib
> /usr/lib/libstdc++.6.dylib: Mach-O 64-bit dynamically linked shared library x86_64
>
> There is another library, this one is multi-format. I don't know if this got created by compiling the gcc or if I had that one before builing gcc:
> bash-3.2$ file /usr/lib/libstdc++.6.0.9.dylib
> /usr/lib/libstdc++.6.0.9.dylib: Mach-O universal binary with 3 architectures
> /usr/lib/libstdc++.6.0.9.dylib (for architecture i386): Mach-O dynamically linked shared library i386
> /usr/lib/libstdc++.6.0.9.dylib (for architecture ppc7400):      Mach-O dynamically linked shared library ppc
> /usr/lib/libstdc++.6.0.9.dylib (for architecture x86_64):       Mach-O 64-bit dynamically linked shared library x86_64
>
> The problem is that when I start some programms, for example eclipse or firefox, it links to the libstdc++.6.dylib library but needs the 32-bit code.
>
> How can I tell the gcc to create the standard libraries with both i386 and x86_64 format (don't really need ppc)?
>

Can you not compile and install twice with two different --prefix=
options so they are installed to two different locations? And is it
truly necessary to have compilers and libraries for both architectures
why not simply run whatever your cpu is?

--Phil



More information about the Gcc-help mailing list