CLFS(1.1.0-Sparc64-Pure64)-基本ツール構築(3)
2010年11月 8日(月) 01:16 JST
閲覧数 3,342
Sparc64用の基本ツールを構築します。ここで作成した環境を実機に持って行きLFS環境をビルドしていく事になります。
◆環境変数の設定
開発ツール類をクロス開発環境を使う様に環境変数を設定します。
◆Binutils-2.18のビルド
Pure64でのビルドなので、disable-multilibを指定しています。
multilib環境を作成するとなると、32bit、64bitの2回ビルドする必要が出てきたり、/lib、/lib64の使い分けなどを考慮するなどが発生します。
◆GCC-4.2.4のビルド
◆Ncurses-5.6のビルド
◆環境変数の設定
開発ツール類をクロス開発環境を使う様に環境変数を設定します。
$ export CC="${CLFS_TARGET}-gcc" $ export CXX="${CLFS_TARGET}-g++" $ export AR="${CLFS_TARGET}-ar" $ export AS="${CLFS_TARGET}-as" $ export RANLIB="${CLFS_TARGET}-ranlib" $ export LD="${CLFS_TARGET}-ld" $ export STRIP="${CLFS_TARGET}-strip" $ echo export CC=\""${CC}\"" >> ~/.bashrc $ echo export CXX=\""${CXX}\"" >> ~/.bashrc $ echo export AR=\""${AR}\"" >> ~/.bashrc $ echo export AS=\""${AS}\"" >> ~/.bashrc $ echo export RANLIB=\""${RANLIB}\"" >> ~/.bashrc $ echo export LD=\""${LD}\"" >> ~/.bashrc $ echo export STRIP=\""${STRIP}\"" >> ~/.bashrc
◆Binutils-2.18のビルド
Pure64でのビルドなので、disable-multilibを指定しています。
multilib環境を作成するとなると、32bit、64bitの2回ビルドする必要が出てきたり、/lib、/lib64の使い分けなどを考慮するなどが発生します。
$ patch -Np1 -i ../binutils-2.18-posix-1.patch $ patch -Np1 -i ../binutils-2.18-branch_update-3.patch $ mkdir -v ../binutils-build $ cd ../binutils-build $ CC="${CC} ${BUILD64}" \ ../binutils-2.18/configure --prefix=/tools \ --build=${CLFS_HOST} --host=${CLFS_TARGET} --target=${CLFS_TARGET} \ --disable-nls --enable-shared --enable-64-bit-bfd \ --disable-multilib $ make configure-host $ make $ make install実施時のログ:6.3-Binutils-2.18.log
◆GCC-4.2.4のビルド
$ patch -Np1 -i ../gcc-4.2.4-PR31490-1.patch $ patch -Np1 -i ../gcc-4.2.4-pure64_specs-1.patch $ patch -Np1 -i ../gcc-4.2.4-posix-1.patch $ patch -Np1 -i ../gcc-4.2.4-cross_search_paths-1.patch $ cp -v gcc/cppdefault.c{,.orig} $ sed -e '/#define STANDARD_INCLUDE_DIR/s@"/usr/include"@0@g' \ gcc/cppdefault.c.orig > gcc/cppdefault.c $ cp -v gcc/Makefile.in{,.orig} $ sed -e 's@\(^NATIVE_SYSTEM_HEADER_DIR =\).*@\1 /tools/include@g' \ gcc/Makefile.in.orig > gcc/Makefile.in $ cp -v gcc/Makefile.in{,.orig2} $ sed -e "/MULTILIBS/s@\$(GCC_FOR_TARGET)@/cross-tools/bin/${CC}@g" \ gcc/Makefile.in.orig2 > gcc/Makefile.in $ mkdir -v ../gcc-build $ cd ../gcc-build $ CC="${CC} ${BUILD64}" CXX="${CXX} ${BUILD64}" \ ../gcc-4.2.4/configure --prefix=/tools --disable-multilib \ --build=${CLFS_HOST} --host=${CLFS_TARGET} --target=${CLFS_TARGET} \ --libexecdir=/tools/lib --with-local-prefix=/tools --enable-long-long \ --enable-c99 --enable-shared --enable-threads=posix --disable-nls \ --enable-__cxa_atexit --enable-languages=c,c++ --disable-libstdcxx-pch $ make AS_FOR_TARGET="${AS}" \ LD_FOR_TARGET="${LD}" $ make install $ cp -va /tools/lib64/* /tools/lib $ rm -rvf /tools/lib64実施時のログ:6.4-GCC-4.2.4.log
◆Ncurses-5.6のビルド
$ patch -Np1 -i ../ncurses-5.6-bash_fix-1.patch $ CC="${CC} ${BUILD64}" CXX="${CXX} ${BUILD64}" \ ./configure --prefix=/tools --with-shared --build=${CLFS_HOST} \ --host=${CLFS_TARGET} --without-debug --without-ada \ --enable-overwrite --with-build-cc=gcc $ make $ make install実施時のログ:6.5-Ncurses-5.6.log