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

TorstenSteinert@web.de TorstenSteinert@web.de
Thu Sep 16 18:16:00 GMT 2010


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)?  

Best regards,  
Torsten



More information about the Gcc-help mailing list