LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: sdv

我编译LFS的过程(问题及我能找到的解决方法)

[复制链接]
发表于 2005-12-16 05:55:00 | 显示全部楼层
在老大的强劲电脑是心理作用,在我的破电脑上效果还是有的,不能加入极端叁数倒是对的
回复 支持 反对

使用道具 举报

发表于 2005-12-16 08:58:18 | 显示全部楼层
都不知道兄弟是挖苦我还是什么的,郁闷。。:)。。

其实优化参数如果真的那么大作用,那AMD/Intel还怎么卖CPU?兄弟测试过没有?
给一点数据看看?。。

对了,你是对所有软件(包括glibc)都优化,还是对其他包优化而已(除了glibc/gcc)?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-16 09:03:32 | 显示全部楼层
目前来说是 全部的编译全部加入了优化参数
----------------

我目的是这样
在一个 fc4上 做的lfs
把lfs做到了另外一块硬盘上,全部搞定后调换两个硬盘启动顺序后使用这个lfs
挂上openmosix,(我手里有4台可以用的机器)
针对每台机器定制一个适合pxe启动的lfs这样应该是每只做一套lfs速度会提升一些
最少openmosix可以分担进程
回复 支持 反对

使用道具 举报

发表于 2005-12-16 09:06:08 | 显示全部楼层
重复发了,sorry。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-16 09:10:29 | 显示全部楼层
斑竹在刷帖子??
-----------
目前到现在来说。。。我总结到了一些东西
补丁不要轻易增加,除非你确信自己能用上。,。。不然很麻烦
回复 支持 反对

使用道具 举报

发表于 2005-12-16 09:20:00 | 显示全部楼层
刷帖子,我没这个兴趣。是速度慢,以为没反应,就又提交了一次。sorry。

有的时候,真佩服你们敢用优化参数,我连-O3都不敢用。(一用,错误就都慢慢冒出来了)。也不知道是见鬼还是郁闷。

对了,-march=pentium4 -pipe -fomit-frame-pointer -mmmx -msse -msse2 这几个,觉得是属于正常优化,我也用了。:)。我说的优化主要是说-03这类速度优化。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-16 09:41:11 | 显示全部楼层
-O3啊?这次不敢用,起码等我4台机器全部挂上再尝试,那个-O3先不说效果
光是编译耗费的时间。。简直就是折磨人
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-16 10:04:57 | 显示全部楼层
到达 Perl发现一些问题
这些补丁
http://www.linuxfromscratch.org/ ... 7-regex_ssp-1.patch

http://www.linuxfromscratch.org/ ... -5.8.7-libc-1.patch

需要打,但 libc的这个最好手动修改一下。。
它和当前的 5.8.7无法正确对应。。起码我的是这样
--------------------
GCC 4.2 下编译perl的时候可能会出现错误。。。我的就不幸出现错误了
提示GCC bug的,这里我采用的解决方法是 去掉 -O项目,只增加 -fforce-mem
(regcomp.c)

--------------------
中途出错后我采用单独编译方法

cc -DPERL_CORE -c -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -fno-stack-protector regcomp.c -pipe -march=pentium4 -mfpmath=sse,387 -fomit-frame-pointer -mmmx -msse -msse2 -fforce-addr

---------------------
。。不过还是卡在perl上了
现在提示

  1. lfs:/mnt/lfs/sources/perl-5.8.7$ cc  -o miniperl miniperlmain.o opmini.o libperl.a
  2. libperl.a(pp.o): In function `Perl_pp_pow':pp.c:(.text+0x3c24): undefined reference to `pow'
  3. libperl.a(pp.o): In function `Perl_pp_modulo':pp.c:(.text+0x4b68): undefined reference to `floor':pp.c:(.text+0x4b94): undefined reference to `floor':pp.c:(.text+0x4c04): undefined reference to `fmod'
  4. libperl.a(pp.o): In function `Perl_pp_atan2':pp.c:(.text+0xc45c): undefined reference to `atan2'
  5. libperl.a(pp.o): In function `Perl_pp_sin':pp.c:(.text+0xc60f): undefined reference to `sin'
  6. libperl.a(pp.o): In function `Perl_pp_cos':pp.c:(.text+0xc809): undefined reference to `cos'
  7. libperl.a(pp.o): In function `Perl_pp_exp':pp.c:(.text+0xcc5d): undefined reference to `exp'
  8. libperl.a(pp.o): In function `Perl_pp_log':pp.c:(.text+0xce8b): undefined reference to `log'
  9. libperl.a(pp.o): In function `Perl_pp_sqrt':pp.c:(.text+0xd0d5): undefined reference to `sqrt'
  10. libperl.a(pp.o): In function `Perl_pp_int':pp.c:(.text+0xd4af): undefined reference to `floor':pp.c:(.text+0xd554): undefined reference to `ceil'libperl.a(pp_pack.o): In function `S_pack_rec':pp_pack.c:(.text+0x5ef3): undefined reference to `floor':pp_pack.c:(.text+0x5f21): undefined reference to `floor'
  11. collect2: ld returned 1 exit status
  12. lfs:/mnt/lfs/sources/perl-5.8.7$
复制代码

我想着应该是缺少那个库?还是别的什么/。。。反正现在就是不知道怎么办好了
:(


------------
通过郁闷才能发奋。。。

去perl.com下载了 5.9.2
不增加任何补丁
全部手动设置选项,
./Configure -Dprefix=/tools
这样才通过。。。注意:这里我关掉了 -O的优化,那个regcomp.c无法用-O优化编译(GCC CVS 4.2)
再就是。。。我竟然选择错了
编译成动态库。。本来想编译为静态的。。
------------------
关于specs部分我采用了
-specs=file的方法,感觉还不错
很方便
回复 支持 反对

使用道具 举报

发表于 2005-12-16 22:01:21 | 显示全部楼层
Post by 终极幻想
都不知道兄弟是挖苦我还是什么的,郁闷。。:)。。
糟糕了!冒犯了大大,罪过、罪过:beat

小弟无心挖苦,敬请大大原谅!

说真的,tram前辈、小丑斑竹及终极幻想大大一直是我的偶像,这里气氛很好,就是在其他版面不能体会的,十分庆幸在这里跟前辈们学习。
其实优化参数如果真的那么大作用,那AMD/Intel还怎么卖CPU?兄弟测试过没有?
给一点数据看看?。。
优化参数当然不是很大的作用,效果是有一点点的。说到数据,good idea,不过要花点时间来做benchmarking。
对了,你是对所有软件(包括glibc)都优化,还是对其他包优化而已(除了glibc/gcc)?
按照LFS Handbook的建议,编译gcc及glibc是不应该带任何CFLAGS及CXXFLAGS的,这个我做LFS的时候是有遵守的。不过,最近在测验gcc-4.1的时候忙记把profile的CFLAGS及CXXFLAGS去掉,结果是新造的gcc-4.1及用gcc-4.1编出来的glibc-2.3.6都带了优化参数来编译了。暂时好像未碰见问题。我也很保守,常用参数只有-march=pentium2 -O3 -pipe -fomit-frame-pointer

是的,做LFS时除gcc及glibc外,其他全带有-O3,一直没有问题
回复 支持 反对

使用道具 举报

发表于 2005-12-16 22:06:14 | 显示全部楼层
Post by sdv
GCC 4.2 下编译perl的时候可能会出现错误。。。我的就不幸出现错误了
提示GCC bug的,这里我采用的解决方法是 去掉 -O项目,只增加 -fforce-mem
(regcomp.c)
疑问:兄弟既然没胆量用-O3,但gcc-4.1已知是多bug的,何以有胆量用上更不成熟的gcc-4.2呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表