follow me

CLFS(1.1.0-Sparc64-Pure64)-基本ツール構築(3)

Sparc64用の基本ツールを構築します。ここで作成した環境を実機に持って行きLFS環境をビルドしていく事になります。

◆環境変数の設定
開発ツール類をクロス開発環境を使う様に環境変数を設定します。
$ 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
CLFS(1.1.0-Sparc64-Pure64)-基本ツール構築(3) | 0 件のコメント | アカウント登録
サイト管理者はコメントに関する責任を負いません。