[Armadillo:02015] Q: Armadillo300のtoolchainのビルドについて
TOGAWA Satoshi
email@hidden
2007年 9月 7日 (金) 09:38:42 JST
お世話になっております。戸川と申します。
Armadillo300のsoft-floatの件で、toolchainを再コンパイルしようと思いました。
挑戦しているのですが、glibcのコンパイルで失敗しています。
ただ、そこに至る過程でもいくつか修正すべき事柄があったので、
確認の意味も含めて書き残しておきます。以下、行ったことです。
環境: Debian GNU/Linux 4.0 (VMWare内)
参考文献: http://www.emdebian.org/docs/slind-toolchain.html
ファイルの取得元: http://armadillo.atmark-techno.com/filebrowser/armadillo-300/cross-dev/sources
1. binutils
$ tar xzvf ~/cross-dev-src/binutils_2.15.orig.tar.gz
$ zcat ~/cross-dev-src/binutils-2.15-crunch.patch.gz | patch -p1
$ cd binutils-2.15
$ zcat ~/cross-dev-src/binutils_2.15-6.diff.gz | patch -p1
$ zcat ~/cross-dev-src/binutils-cross-2.15-6.patch.gz | patch -p1
$ chmod +x debian/rules
$ TARGET=arm-linux-gnu fakeroot debian/rules binary-cross (※1)
# dpkg -i ../binutils-arm-linux-gnu_2.15-6_i386.deb
(※1: TAEGETの指定をこのようにしておかないと、gcc(bootstrap)の
configre時にクロス用asなどを見つけられないようです)
2. gcc (bootstrap)
$ tar xzvf ~/cross-dev-src/gcc-3.4_3.4.3.orig.tar.gz
$ cd gcc-3.4-3.4.3.orig
$ zcat ~/cross-dev-src/gcc-3.4_3.4.3-13.diff.gz | patch -p1
$ zcat ~/cross-dev-src/gcc-3.4-cross-3.4.3-13.patch.gz | patch -p1
$ zcat ~/cross-dev-src/gcc-3.4.3-crunch.patch.gz | patch -p1
$ vi debian/rules.patch (後で置くconfigure-sed を追加する)
$ vi debian/rules2 (CONFARGSに--with-float=softを追加する)
$ cp /path/to/configure-sed.dpatch debian/patches (※1)
$ chmod +x debian/rules
$ GCC_TARGET=arm DEB_CROSS=yes NOGLIBC=yes dpkg-buildpackage -uc -us -rfakeroot -b -d
$ cd ..
# dpkg -i cpp-3.4-arm-linux-gnu_3.4.3-13_i386.deb gcc-3.4-arm-linux-gnu_3.4.3-13_i386.deb libgcc1-arm-cross_3.4.3-13_all.deb
(※1: gcc/configureにおいて修正が必要です。添付します)
ここまでは出来ていると思います。main()関数のみのCプログラムを
arm-linux-gnu-gccの-cオプション付でコンパイルして.oファイルを取得できました。
3. glibc
$ tar xzvf ~/cross-dev-src/glibc_2.3.2.ds1.orig.tar.gz
$ cd glibc-2.3.2.ds1
$ zcat ~/cross-dev-src/glibc_2.3.2.ds1-22.diff.gz | patch -p1
$ zcat ~/cross-dev-src/glibc-cross-2.3.2.ds1-22.patch.gz | patch -p1
$ zcat ~/cross-dev-src/glibc-2.3.x-crunch.patch.gz | patch -p1
$ chmod +x debian/rules
$ GLIBC_OVERLAYS='nptl-0.60.tar.bz2 glibc-linuxthreads-2.3.2.tar.bz2' dpkg-buildpackage -uc -us -rfakeroot -aarm -b -d (※3)
(※3: GLIBC_OVERLAYSを手動で指定しないと、dpatch当てに失敗します)
最後の dpkg-buildpackage をしたときに、glibcのconfigureに
失敗しているようです。
log-build-i486-linux-gnu-libc を見ると、
----
checking how to run the C preprocessor... arm-linux-gnu-cpp
configure: error: C preprocessor "arm-linux-gnu-cpp" fails sanity check
----
となっています。
対応すると思われる build-tree/i386-i686/config.log を見ると、
----
configure:2921: checking how to run the C preprocessor
configure:3023: result: arm-linux-gnu-cpp
configure:3038: arm-linux-gnu-cpp conftest.c
configure:3033:20: assert.h: No such file or directory
configure:3044: $? = 1
configure: failed program was:
#line 3032 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax error
configure:3038: arm-linux-gnu-cpp conftest.c
configure:3033:20: assert.h: No such file or directory
configure:3044: $? = 1
configure: failed program was:
#line 3032 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax error
configure:3105: error: C preprocessor "arm-linux-gnu-cpp" fails sanity check
----
となっています。
この段階では、 arm-linux-gnu-cpp 用の assert.h は
/usr/arm-linux-gnu/include にはインストールされていないので、
このエラーが出るのも当然のように思います。
glibcのビルドターゲットで、ヘッダのみを先にインストールするターゲットが
あるかと思って探しましたが、見当たらないようです。
(「参考文献」であげたサイトの記述では、DEB_CROSS_BOOTSTRAP=yesにするように
書いてあったのですが、これでもだめなようです)
どのようにすれば、glibcをコンパイルできるのでしょうか?
よろしくお願いします。
以上です。
--
email@hidden
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: configure-sed.dpatch
型: application/octet-stream
サイズ: 1985 バイト
説明: 無し
URL: <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20070907/b849b339/attachment.obj>
armadillo メーリングリストの案内