第6节 编译gcc 64位 pass1
用lfs用户所在的系统的gcc做出/tools/bin/x86_64-lfs-linux-gnu-gcc。
编译时,将mpfr gmp mpc的源码拷入gcc的目录下编译。
tar xvfj ../gcc-4.6.1.tar.bz2
mv gcc-4.6.1 gcc-4.6.1-p1
cd gcc-4.6.1-p1
tar -jxf ../../mpfr-3.1.0.tar.bz2
mv -v mpfr-3.1.0 mpfr
tar -jxf ../../gmp-5.0.2.tar.bz2
mv -v gmp-5.0.2 gmp
tar -zxf ../../mpc-0.9.tar.gz
mv -v mpc-0.9 mpc
patch -Np1 -i ../../gcc-4.6.1-cross_compile-1.patch
cd ..
mkdir -v gcc-build-p1-x86_64
cd gcc-build-p1-x86_64
../gcc-4.6.1-p1/configure --target=$LFS_TGT --prefix=/tools --libdir=/tools/lib64 --disable-nls --disable-shared --disable-multilib --disable-decimal-float --disable-threads --disable-libmudflap --disable-libssp --disable-libgomp --disable-libquadmath --disable-target-libiberty --disable-target-zlib --enable-languages=c --without-ppl --without-cloog --enable-initfini-array --with-mpfr-include=$(pwd)/../gcc-4.6.1-p1/mpfr/src --with-mpfr-lib=$(pwd)/mpfr/src/.libs
查看config.log,可以看到以下内容:
configure:4339: checking whether we are cross compiling
configure:4341: result: no
CC_FOR_BUILD='$(CC)'
CC='gcc'
AR_FOR_TARGET='/tools/x86_64-lfs-linux-gnu/bin/ar'
说明没有使用交叉编译,也成功指定了--target。
make 2>&1|tee out.make
make install DESTDIR=$(pwd)/img 2>&1|tee out.install
mv img/tools/lib/* img/tools/lib64
rm -rf img/tools/lib
cp -rfv img/tools/* /tools/
ln -vs libgcc.a `$LFS_TGT-gcc -print-libgcc-file-name | \
sed 's/libgcc/&_eh/'`
cd ..