Debian chrootでgccをビルドする方法は?

Debian chrootでgccをビルドする方法は?

私はdebootstrap最小限のDebianシステム(x86)を設定したことがあります:

debootstrap wheezy /var/chroot http://ftp.debian.org/debian/

その後、いくつかのパッケージをルートとして指定してインストールしました。

apt-get install build-essential m4 flex bison libgmp-dev libmpfr-dev

私はgcc 4.1.3を構築しようとしています(理由は尋ねないでください)。私の設定は次のとおりです。

./configure --prefix=/usr/local --program-suffix=-4.1.3 --enable-languages=c,c++

数分間実行した後、次のエラーで失敗します。

In file included from /usr/include/stdio.h:28,
                 from ../.././gcc/tsystem.h:90,
                 from ../.././gcc/crtstuff.c:68:
/usr/include/features.h:323:26: error: bits/predefs.h: No such file or directory
/usr/include/features.h:356:25: error: sys/cdefs.h: No such file or directory
/usr/include/features.h:388:23: error: gnu/stubs.h: No such file or directory
In file included from ../.././gcc/tsystem.h:90,
                 from ../.././gcc/crtstuff.c:68:
/usr/include/stdio.h:36:25: error: bits/types.h: No such file or directory
In file included from ../.././gcc/tsystem.h:90,
                 from ../.././gcc/crtstuff.c:68:

しかし、私はstdio.h.soを使ってコンパイルできますが、明らかにgccではありません。

gccをビルドするには、chrootをさらにインストール/設定する必要がありますか?

ベストアンサー1

これを設定した後、ビルドを完了できました。

export LIBRARY_PATH=/usr/lib/i386-linux-gnu
export C_INCLUDE_PATH=/usr/include/i386-linux-gnu
export CPLUS_INCLUDE_PATH=/usr/include/i386-linux-gnu

編集:これで問題の原因がわかりました。システムに付属のgccは/usr/include/i386-linux-gnu。そのため、stage2でビルドが失敗します。

gccには、ヘッダーとライブラリの検索パスを設定するための設定オプションがないようです。したがって、gcc-4.1が古すぎる(Debianのマルチアーキテクチャソリューションの前)、最新バージョンですでに検索されていることがわかっているようです/usr/include/<target>

おすすめ記事