+ -
当前位置:首页 → 问答吧 → [中止]直播,LFS 6.4 rc1

[中止]直播,LFS 6.4 rc1

时间:2008-11-15

来源:互联网

采用 lfs-6.3-r2160 的ISO作host,把 6.4-r1的包,Patch全下载回来,整过去,然后开始.
参照handbook一步步来.
1.cfdisk
我分了两个区,/dev/hda1 -ext3 /dev/hda2 -swap
然后
代码:
mke2fs -jv /dev/hda1
mkswap /dev/hda2
swapon /dev/hda2
接下来加载分区,创建用户环境
代码:
export LFS=/mnt/lfs
mkdir -pv $LFS
mount -v -t ext3 /dev/hda1 $LFS
mkdir -v $LFS/sources
chmod -v a+wt $LFS/sources
mkdir -v $LFS/tools
export LFS=/mnt/lfs
ln -sv $LFS/tools /
groupadd lfs
useradd -s /bin/bash -g lfs -m -k /dev/null lfs
chown -v lfs $LFS/tools
chown -v lfs $LFS/sources
然后切换到lfs用户去工作,因为没设lfs的密码,所以这里就不用密码了.
代码:
su - lfs
设定用户环境.
代码:
cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF
cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL PATH
EOF
source ~/.bash_profile
接下来开始制作临时系统.

作者: qufo   发布时间: 2008-11-15

加油吧 :)

作者: d00m3d   发布时间: 2008-11-15

切换自己的工作文件夹到 $LFS/sources 下来.
然后找到并解开 binutils-2.18.tar.bz2 到 $LFS/sources 下面.
代码:
tar xvf /mnt/cd/lfs-sources/binutils-2.18.tar.bz2
然后进入 binutils-2.18 中,打补丁.
代码:
cd binutils-2.18
patch -Np1 -i /mnt/cd/lfs-sources/binutils-2.18-configure-1.patch
/mnt/cd/lfs-sources/是我的包的位置.

注意是Np壹,不是NpL,是数字1
然后再建一个binutils-build,用一个单独的文件夹进行编译
代码:
mkdir -v ../binutils-build
cd ../binutils-build
CC="gcc -B/usr/bin/" ../binutils-2.18/configure \
 --prefix=/tools --disable-nls --disable-werror
make
make install
make -C ld clean
make -C ld LIB_PATH=/tools/lib
cp -v ld/ld-new /tools/bin
最后照例是删除掉不需要的东西.
代码:
cd ..
rm -rf binutils-build
rm -rf binutils-2.18
完成.

作者: qufo   发布时间: 2008-11-16

这里,照6.4 的handbook,要做一些以前没做过的,上代码
代码:
tar xvf /mnt/cd/lfs-sources/gcc-4.3.2.tar.bz2
cd gcc-4.3.2

tar -jxf /mnt/cd/lfs-sources/mpfr-2.3.2.tar.bz2
mv mpfr-2.3.2 mpfr
tar -jxf /mnt/cd/lfs-sources/gmp-4.2.4.tar.bz2
mv gmp-4.2.4 gmp
同样,再来一个 gcc-build 用于编译文件夹.
代码:
mkdir -v ../gcc-build
cd ../gcc-build
然后是配置.
代码:
CC="gcc -B/usr/bin/" ../gcc-4.3.2/configure --prefix=/tools \
 --with-local-prefix=/tools --disable-nls --disable-shared --disable-libssp \
 --enable-languages=c
注意一点,如果前面那两个 mpfr , gmp 没有到正确的位置,会提示找不到这两份内容而生不成了Makefile,最终导致接下来的make 提示没有 target

接下来进行编译
代码:
make
make install
接下来连接
代码:
ln -vs libgcc.a `gcc -print-libgcc-file-name | \
 sed 's/libgcc/&_eh/'`
ln -vs gcc /tools/bin/cc
我就犯过一次错误,mpfr,gmp路径不对,导致没有 Makefile ,

这里讲一个 BSD里的笑话.
在BSD 执行一个命令,make love
会报.
Make : Do not know how to make love
报的结果不记得清楚,但这确实是一个大家调侃的话题.

最后,照例把 gcc-build 和gcc-4.3.2文件夹删掉

作者: qufo   发布时间: 2008-11-16

cpu 100%了,到现在还没有编译完 gcc ,宣告中止.

作者: qufo   发布时间: 2008-11-16

6.4和6.3差别大不?

作者: 情灭缘尽   发布时间: 2008-11-16

引用:
作者: qufo
cpu 100%了,到现在还没有编译完 gcc ,宣告中止.
是临时终止直播,还是终止制作?

不是打算半途而废吧?

作者: d00m3d   发布时间: 2008-11-16

引用:
作者: 情灭缘尽
6.4和6.3差别大不?
看从哪个角度来看,方法差别不大,主要是 Toolchain 的 gcc 升为 4.3.2 後加入了相关依赖,其余的主要是软件升版了

作者: d00m3d   发布时间: 2008-11-16