LFS(Linux From Scratch)构建过程全记录(四):构建临时lfs系统

本文详细记录了使用Linux From Scratch (LFS)构建临时Lfs系统的过程,包括构建新工具链、安装Linux-4.13.16 API Headers、Glibc-2.23以及一系列基础工具,如GCC、Binutils、Perl等。每个步骤都提供了详细的配置、编译和安装说明,旨在减少对宿主系统的依赖。
摘要由CSDN通过智能技术生成

  在构建lfs系统之前我们需要构建脱离宿主系统的新的工具链,然后在使用新的工具链构建其他基础的工具。这样做的目的减少宿主系统的依赖和影响。
  构建出来的新工具链会放在$LFS/tools 的文件夹中,让其与后面安装的文件和宿主系统生成的目录分开,防止污染后面要制作的lfs系统。

构建临时lfs系统

  解压包命令:

tar -xjf ***

附:在没有特殊说明的情况下,编译安装完一个就删除掉解压后的目录

1. Binutils-2.26

  进入到Binutils-2.26目录下,创建编译目录:

mkdir -v build
cd build

   进行编译配置:

…/configure --prefix=/tools
–with-sysroot=$LFS
–with-lib-path=/tools/lib
–target=$LFS_TGT
–disable-nls
–disable-werror

  开始编译:

make

由于我使用的是x86_64架构平台,所以需要创建符号链接:

case $(uname -m) in
x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;;
esac

  安装编译结果:

make install

2. GCC-5.3.0

   还记得第一张的准备工作中,检查宿主机的库时,有如下的输出:

libgmp.la: not found
libmpfr.la: not found
libmpc.la: not found

   说明当前宿主机没有这三个库,所以我们解压sources目录下的这三个包,并重命名,使得编译gcc的时候可以识别到这三个库。

tar -xf …/mpfr-3.1.3.tar.xz
mv -v mpfr-3.1.3 mpfr
tar -xf …/gmp-6.1.0.tar.xz
mv -v gmp-6.1.0 gmp
tar -xf …/mpc-1.0.3.tar.gz
mv -v mpc-1.0.3 mpc

   以上是将这三个包解压后,移动到gcc的编译目录下。
   以下命令将更改GCC默认动态链接器的位置,以使用/ tools中安装的链接器。 它还从GCC的include搜索路径中删除/ usr / include:

for file in
$(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h)
do
cp -uv $file{,.orig}
sed -e ‘s@/lib(64)?(32)?/ld@/tools&@g’
-e ‘s@/usr@/tools@g’ $file.orig > $file
echo ’
#undef STANDARD_STARTFILE_PREFIX_1
#undef STANDARD_STARTFILE_PREFIX_2
#define STANDARD_STARTFILE_PREFIX_1 “/tools/lib/”
#define STANDARD_STARTFILE_PREFIX_2 “”’ >> $file
touch $file.orig
done

   以上具体的含义详见lfs7.9文档。
  同Binutils-2.26,创建build目录:

mkdir -v build
cd build

  配置命令如下:

…/configure
–target=$LFS_TGT
–prefix=/tools
–with-glibc-version=2.11
–with-sysroot=$LFS
–with-newlib
–without-headers
–with-local-prefix=/tools
–with-native-system-hea

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非正经程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值