Native Build using the CLFS methodology
时间:2008-12-26
来源:互联网
另外我很喜欢CLFS Native中制作Cross-toolchain的方法,把binutils、gcc放到一个目录中,最然这种方法在HLFS中早就使用了,如果有一天编译binutils、gcc、glibc能一气呵成该多好。
作者: newper 发布时间: 2008-12-26
找不到您所谓的 “CLFS Native”。
"32to32 64to64" 是不安全的,有可能影响系统纯度,这是您的误解,您可以在论坛中搜一下“伪交叉编译”。
“binutils、gcc、glibc能一气呵成”这只是风格问题,按目前源码组织风格不现实、同时也缺乏灵活性。
您可以尝试实现这个想法,会比您这么讲有趣的多。
作者: 聚焦深空 发布时间: 2008-12-29
作者: newper 发布时间: 2008-12-29
只是这个明明是sysroot的方法,给归类到1.x,不伦不类的。
论坛中 youbest、地球发动机、偶(伪交叉编译部分) 讨论过类似的方法。
按偶的经验,这个系统纯度值得怀疑,主要怀疑位置在临时系统 http://cross-lfs.org/view/svn/native...stem/mpfr.html ,这里很有可能链接到建立工具链时安装的libgmp.so而不是刚刚交叉编译的版本。
如果您按照这个手册做,不妨到此步骤时确认一下会不会出现这个问题。
作者: 聚焦深空 发布时间: 2008-12-29
作者: 聚焦深空
多谢,看起来不错。
只是这个明明是sysroot的方法,给归类到1.x,不伦不类的。 |
CLFS-native: Copyright © 2005–2008 Joe Ciccone, Jim Gifford, & Ryan Oliver
CLFS-sysroot: Copyright © 2005–2008 Joe Ciccone, Jim Gifford, & Ryan Oliver
CLFS-1.10: Copyright © 2005–2008 Jim Gifford & Ryan Oliver
或许是因为有 Joe Ciccone的参与,所以……
也有可能是因为CLFS-sysroot的目标是不制作临时系统,所有软件都交叉编译,而CLFS-native的目标或许只是去用CLFS-1.x的方法去实现现在的LFS-svn,也就是以后的LFS-7.0
作者: 聚焦深空
这里很有可能链接到建立工具链时安装的libgmp.so而不是刚刚交叉编译的版本。
如果您按照这个手册做,不妨到此步骤时确认一下会不会出现这个问题。 |
等到以后有空时在虚拟机上试一下。
作者: newper 发布时间: 2008-12-29
“没有指定--target”并不说明相应的变量无定义,而是系统自动赋予默认值,这个您看一看 ./configure 的输出自会明了。
“gcc而不是i686-xxx-linux-gnu-gcc”事实是这两个可执行文件都存在,并且有硬连接关系。
“而第二遍编译时已经改了specs,指向了/tools/lib”这里只是指明交叉编译工具链中的 gcc 默认库搜索路径是${CLFS}/tools/lib。
根据偶的经验,这是多余的步骤,按照 CLFS-Sysroot 方式建立临时系统更简单,这种仿 LFS 方法的唯一好处是升级时临时系统可以重复利用,特别是升级 glibc 时,而 CLFS-Sysroot 方式必须完全重新做才来的安全。
"用这个gcc去编译mpfr,只会在/tools/lib下寻找libgmp.so"注意是${CLFS}/tools/lib,按照我们的目标您这么理解是正确的。
偶怀疑真实情况是连接到${CLFS}/cross-tools/lib/libgmp.so,影响目标系统纯度,这个要实际验证。
偶可以肯定的一点是,mpfr-2.3.1在伪交叉编译的情况下会强硬的、固执的、认死理的连接到宿主libgmp.so(/usr/lib/libgmp.so 视您安装位置而定),除非配置时您指明交叉编译gmp的位置,个人认为这只是小瑕疵不算bug。
mpfr-2.3.2是否有改善偶不清楚。
偶的理解:
这个手册适用于 x86/x86_64 硬件平台,使用类似 CLFS-Sysroot 的方式建立交叉编译工具链,安装到 ${CLFS}/cross-tools;
然后按照类似 LFS 方式编译临时系统,安装到 ${CLFS}/tools(实际上是伪交叉编译,即--build= --host= 赋植相同,只是未显示指明而已,此时效果上伪交叉编译等同于正常编译);
之后建立基本系统,安装到最终位置,相当于宿主中的${CLFS}/{,usr/}{bin,sbin,lib};
中间不需要切换内核,不需要boot,但可以chroot。
作者: 聚焦深空 发布时间: 2008-12-30
作者: newper 发布时间: 2008-12-30
CLFS1.xsvn有修改但只是在制作cross-toolchain的时候,而制作tempsystem时没有修改,CLFS-native也没有修改,所以我还是坚持我的看法
作者: newper 发布时间: 2009-01-05
作者: newper
http://cross-lfs.org/view/svn/x86/cross-tools/mpfr.html
CLFS1.xsvn有修改但只是在制作cross-toolchain的时候,而制作tempsystem时没有修改,CLFS-native也没有修改,所以我还是坚持我的看法 |
看来 Current Development 1.x 系列手册的系统纯度都值得怀疑,之前偶到是没注意。
要知道这些手册处于开发状态,如果有问题也是很正常的。
这些手册作参考尚可,当“圣经”就比较可笑了,亦不足为据。
您最好还是实际做做再下结论,否则偶只有漠视您的言论。
作者: 聚焦深空 发布时间: 2009-01-06
作者: newper 发布时间: 2009-01-06
http://cross-lfs.org/view/svn/native/ 失效
CLFS-native 系列手册失踪,已合并到 CLFS-svn,工具链特征是使用了 --sysroot=xxx 并且类似 LFS 调整 头文件 (xxx)/tools/include 库 (xxx)/tools/lib 搜索路径。
作者: 聚焦深空 发布时间: 2010-06-06
作者: 聚焦深空
偶可以肯定的一点是,mpfr-2.3.1在伪交叉编译的情况下会强硬的、固执的、认死理的连接到宿主libgmp.so(/usr/lib/libgmp.so 视您安装位置而定),除非配置时您指明交叉编译gmp的位置,个人认为这只是小瑕疵不算bug。
mpfr-2.3.2是否有改善偶不清楚。 |
可参考 man ld 中 -rpath -rpath-link 小节,有详细说明。
CLFS-native 被废弃很可能是和类似问题有关。
这再次说明 伪交叉编译 不安全。
作者: 聚焦深空 发布时间: 2010-06-06
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28