分享
 
 
 

LFS工具链构造学习笔记

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

LFS工具链构造学习笔记By Aladdin

更新:

发布:2005-7-29

花了两天时间按照LFS-BOOK-6.1构建了LFS系统。我是新手,两天的时间确实很漫长,遇到了不少的困难和挫折,但是学习的收获也是很大的。我把自己的一些心得和体会记录在这里,希望能对其他人有用。

LFS的目标是完全从源代码构造一个“独立的”和“纯净的”的Linux系统。显然,仅仅由源代码自己是不可能构造一个可运行的Linux系统的。因此,在最开始的阶段,我们必须有一个host系统,并使用其中的编译工具链来编译我们的源代码。

也许最开始我们都容易把问题想得过于简单:只需要在host系统中编译内核和所有的软件包,并把它们安装到LFS文件系统中,让它可以启动,工作就结束了。用得着这么费劲吗?

然而,我们注意到,这种方法和前面提到的构造一个“独立的”和“纯净的”Linux系统实际上是矛盾的。因为这样在最终的系统中引入了大量的来自于host系统中的“元素”,包括链接库的代码,编译过程中使用的工具,环境变量等等。这样做的后果是危险的,因为我们无法保证来自于host系统的代码和工具具有可以信赖的质量。而且软件最终运行的系统的环境可能与编译这些软件的系统的环境大不相同,这也可能带来问题。

正确的做法,也就是LFS中采用的方法,是首先构造一个干净的、不依赖于host系统的、能够自己自足的工具链,然后使用我们自己构造的工具链取代host系统中的工具来编译剩余的系统。如何正确的构造一个这样的工具链,是LFS-BOOK所关注的最重要的内容。LFS-BOOK的作者这样说:“我们相信,对阅读LFS BOOK的人来说,如何创建一个正确的工具链是最应该知道的。其他的都是第二位的。”(from Pure LFS XML) 这样说是很中肯的。

LFS-BOOK的第五章展现的正是这样一个过程。这个过程和编译器开发中的bootstrap技术和交叉编译有些相似,过程大概如下。

在Linux系统中,一个工具链主要包括binutils, gcc, glibc。首先编译了binutils(Pass1)和gcc(Pass1)。尽管在Pass1中,这两个工具包是链接到host系统的共享链接库上去的,但已经是由我们自己的源码包编译来的。另外值得注意的是,在Pass1的gcc编译中使用了make bootstrap,这意味着gcc源码将被重复编译三遍,其中第二遍和第三遍使用第一遍编译得到的二进制gcc,并比较第二遍和第三遍编译的结果,一次来保证编译器自身编译的正确性。

接下来就是编译一个临时的glibc。这是一个Linux系统的核心,它将被后面的几乎每一个软件包所使用。为了在接下来的编译过程中使用这个glibc取代host系统的glibc,这里需要对工具链做出正确的调整,使ldscript和gcc specs文件中的链接路径指向我们新编译的glibc所在的位置。

这样,接下来编译的binutils(Pass2)和gcc(Pass2)将被连接到刚才编译得到的glibc上面。至此,已经得到了一个独立于host系统的工具链。在第五章剩余的部分,我们将使用这个工具链编译出一个可以用于chroot进去的独立的工作环境。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有