gcc-4.8.2 をビルドするときに同じ問題が発生しました。そのマシンにはルート アクセス権がないため、ホーム ディレクトリにインストールする必要があります。これを機能させるために必要な魔法を理解するまでに何度か試みたので、他の人が簡単に使えるようにここで再現します. これらは、gcc の構成に使用したコマンドです。
prefix=/user/grc/packages
export LDFLAGS=-Wl,-rpath,$prefix/lib
export LD_RUN_PATH=$prefix/lib
export LD_LIBRARY_PATH=$prefix/lib
../../src/gmp-4.3.2/configure --prefix=$prefix
../../src/mpfr-2.4.2/configure --prefix=$prefix
../../src/mpc-0.8.1/configure --prefix=$prefix --with-mpfr=$prefix --with-gmp=$prefix
../../src/gcc-4.8.2/configure --prefix=$prefix --with-mpfr=$prefix --with-gmp=$prefix --with-mpc=$prefix --enable-languages=c,c++
これで動作するバイナリが得られましたが、そのバージョンの g++ でビルドしたプログラムは、-Wl,-rpath,$prefix/lib64 オプションを使用してビルドしない限り、正しく実行されませんでした。specs ファイルを提供することで、g++ にそのオプションを自動的に追加させることができます。あなたが実行する場合
strace g++ 2>&1 | grep specs
specs ファイルをチェックするディレクトリを確認できます。私の場合は $prefix/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/specs だったので、 g++ -dumpspecs を実行して新しいスペック ファイルを作成しました。
cd $prefix/lib/gcc/x86_64-unknown-linux-gnu/4.8.2
$prefix/bin/g++ -dumpspecs > xx
mv xx specs
次に、そのファイルを編集して -rpath オプションを提供しました。次のような行を検索します。
*link_libgcc:
%D
編集して rpath オプションを追加します。
*link_libgcc:
%D -rpath /user/grc/packages/lib/%M
%M は、ビルドする実行可能ファイルが 32 ビットか 64 ビットかに応じて、../lib または ../lib64 に展開されます。
以前の gcc-4.7 ビルドでこの同じトリックを試したとき、%M. 古いバージョンの場合、%M を削除して lib または lib64 をハードコードするだけでかまいませんが、これは、32 ビットの実行可能ファイル (lib を使用) のみをビルドするか、64 ビットの実行可能ファイル (lib64 を使用) のみをビルドする場合にのみ実行可能なソリューションです。