2011/9/3 Maciej Bliziński: > 2011/9/3 Jonathan Wakely <jwakely.gcc@xxxxxxxxx>: >>> Any ideas why the RPATH might be missing? >> >> This is a FAQ, read the docs. Your dynamic linker doesn't look in /opt/csw >> and gcc does not use a rpath automatically. Building gcc is not trivial, >> read the docs! Carefully! > > I have read the docs. The configuration stage instructions explain this part: > > "...also the --with-mpc=mpcinstalldir option is shorthand for > --with-mpc-lib=mpcinstalldir/lib and > --with-mpc-include=mpcinstalldir/include" > > On my system, these locations are correct, the following files exist: > > /opt/csw/include/mpc.h > /opt/csw/lib/libmpc.so -> libmpc.so.2.0.0 > /opt/csw/lib/libmpc.so.2 -> libmpc.so.2.0.0 Did you read the whole of that paragraph? Right there it says "You might also need to ensure the shared libraries can be found by the dynamic linker when building and using GCC, for example by setting the runtime shared library path variable (LD_LIBRARY_PATH on GNU/Linux and Solaris systems). " > I assumed that the information about libmpc.so.2 location is passed to > the intermediate binaries. You assume wrong, and the docs pretty clearly say you might need to ensure the dynamic linker can find the libs. Since your problem is that the dynamic linker can't find the libs, maybe those docs are relevant :) > You linked to a FAQ item about the runpath[2], if I understand > correctly, it doesn't concern building/bootstrapping GCC, it's about > binaries built by GCC. When you bootstrap GCC it *is* a binary built by GCC, so that applies. > It says that if e.g. libstdc++.so.6 is in > /opt/foo, you need to compile your binary with the -R/opt/foo option > (at least on some systems). In case of the GCC bootstrap, it runs > ./configure subinvocations, and I would assume that it knows about > passing the -R flag. You assume wrong. As that FAQ says, GCC doesn't pass that flag, by design. >> It's much easier to build gmp, mpfr and mpc statically by putting them in >> the gcc source tree. > > Thanks for the hint. So far, I have intentionally avoided this, > preferring the divide-and-conquer model. Porting to Solaris can be > tedious, so I generally prefer to build the dependencies once and be > done with it. Exactly how many other packages on your system depend on GMP, MPFR or MPC? I'm guessing it's none. You say "porting to Solaris" but Solaris is a fully supported and tested platform for GCC, it's one of the primary platforms that needs to work as part of the release criteria: http://gcc.gnu.org/gcc-4.6/criteria.html Loads of people build GCC on Solaris successfully, I've done so dozens of times, so you shouldn't need to do any porting for GCC or any of its dependencies. You seem to be making life unnecessarily difficult for yourself.