以降はLFS-BOOKに書いてあるとおりパッケージをインストールするだけなので、特に問題なくインストールできたものは実行手順を割愛し、結果だけを記録する。
Binutils-2.20 – 1回め
問題なし
GCC-4.4.3 – 1回め
問題なし
Linux-2.6.32.8 API ヘッダ
問題なし
Glibc-2.11.1
makeでこんなエラーがでた。
make[1]: *** No rule to make target `/mnt/lfs/sources/glibc-build/Versions.all’, needed by
`/mnt/lfs/sources/glibc-build/abi-versions.h’. Stop.
make[1]: Leaving directory `/mnt/lfs/sources/glibc-2.11.1′
make: *** [all] Error 2
そしてmakeの途中ではこんなメッセージがでている。
or [)
/[^
mawk: scripts/gen-sorted.awk: line 19: syntax error at or near ]
mawk: scripts/gen-sorted.awk: line 19: runaway regular expression /, “”, subd …
インターネットで検索したら、「mawkではなく、gawkを使いなさい」とあったのでgawkをインストールした。
・・・
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Couldn’t find package gawk
パッケージが見つからないというエラーがでたので、パッケージをupdateする
このあと、もう一度このコマンドを実行してgawkをインストールすると、今度は成功。
つづけて、make clean && make install を実行したら、さっきと同じエラーがでた。
./configureからやりなおしたら、今度は違うエラーがでた。
make[1]: *** [/mnt/lfs/sources/glibc-build/libc.so] Error 1
make[1]: Leaving directory `/mnt/lfs/sources/glibc-2.11.1′
make: *** [all] Error 2
lfs@ubuntu-vm:/mnt/lfs/sources/glibc-build$
lfs@ubuntu-vm:/mnt/lfs/sources/glibc-build$
lfs@ubuntu-vm:/mnt/lfs/sources/glibc-build$ uname -a
Linux ubuntu-vm 2.6.24-18-generic #1 SMP Wed May 28 20:27:26 UTC 2008 i686 GNU/Linux
これは途中でCFLAGの設定をしていなかったのが原因だった。
x86系CPUをマシンでは以下のコマンド実行が必須です。
case `uname -m` in i?86) echo "CFLAGS += -march=i486 -mtune=native" > configparms ;; esac
もういちどmake。次はこんなエラー
/mnt/lfs/tools/bin/../lib/gcc/i686-lfs-linux-gnu/4.4.3/../../../../i686-lfs-linux-gnu/bin/ld:
cannot find -lgcc_eh
collect2: ld returned 1 exit status
make[2]: *** [/mnt/lfs/sources/glibc-build/iconv/iconvconfig] Error 1
make[2]: Leaving directory `/mnt/lfs/sources/glibc-2.11.1/iconv’
make[1]: *** [iconv/others] Error 2
make[1]: Leaving directory `/mnt/lfs/sources/glibc-2.11.1′
make: *** [all] Error 2
lgccが見つからない?
これもlfs-supportのメールアーカイブを検索して解決法を見つけました。
libgcc.a へのシンボリックリンクを作成すれば解決するとのこと。
すなわち、LFS-BOOKの”5.5. GCC-4.4.3 – Pass 1”最後に書いてあるコマンドを実行する。
ln -vs libgcc.a `$LFS_TGT-gcc -print-libgcc-file-name | sed 's/libgcc/&_eh/'`
これで今度こそmakeできました。