Linux From Scratch:gcc、glibcインストール

Pocket

以降は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の途中ではこんなメッセージがでている。

mawk: scripts/gen-sorted.awk: line 19: regular expression compile failed (bad class — [], [^]
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をインストールした。

sudo apt-get install gawk
・・・
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Couldn’t find package gawk

パッケージが見つからないというエラーがでたので、パッケージをupdateする

sudo apt-get update

このあと、もう一度このコマンドを実行してgawkをインストールすると、今度は成功。

sudo apt-get install 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できました。

コメントをどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です