Paul Smith writes: > On Fri, 2007-01-05 at 11:12 +0000, Andrew Haley wrote: > > Paul Smith writes: > > > > > > However, libstdc++ is handled differently: the compiler build generates > > > both a lib/libstdc++.so and also a lib/soft-float/libstdc++.so (same > > > names, different directories). On my target filesystem there is only > > > one: /usr/lib/libstdc++.so and investigation shows this to be the fp > > > version, not the soft-float version. > > > > This is very odd. Are you saying that when you do "make install" the > > soft-float versions of the libraries aren't copied into $PREFIX at > > all? If so, this is a bug. > > Thanks for the response Andrew! > > Well, the library not being installed is something easily resolved. > > The real question is, WHERE is it supposed to be installed, and how > is it supposed to work? > > For libstdc++, unlike libgcc_s, the filenames for the soft- and > hard-float versions are the same so (again unlike libgcc_s) they > obviously have to be installed into different directories if both > are present on the system at the same time (which is what we want, > it seems to me). That's usual for multilibbing, yes. We put them into different directories: there should be a soft-float directory. > Even more concerning, the soname for the soft- and hard-float > versions of libstdc++ is the same (again, unlike libgcc_s), so even > if both versions WERE installed (and both paths were configured via > ldconfig or whatever) I don't see how the runtime linker could > choose the right one! It ought to be possible for ld.so to sort this out based on flags in the object files, but this is a binutils/glibc issue. > Either there's some deeper magic here that I'm unfamiliar with (quite > likely!), or it's just not possible to have both the soft- and > hard-float versions of libstdc++ available (and usable) on the same > system at the same time (and again, unlike libgcc_s where this is quite > possible and works fine). > > If someone can explain how this is supposed to work (or point me to the > relevant docs etc.) then I'll be happy to investigate the simpler > question of why "make install" is not doing the right thing... once I > understand what "the right thing" is :) This is controlled by the t-* files in the gcc/config/rs6000 directory. You should see something like: MULTILIB_OPTIONS = msoft-float mcpu=common MULTILIB_DIRNAMES = soft-float common When you do a "make install" the soft-float directories are supposed to be installed in $PREFIX. Does this really not work? Andrew.