LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 805|回复: 6

请教全局标记custom-cflags的作用

[复制链接]
发表于 2009-10-23 17:45:51 | 显示全部楼层 |阅读模式
处理器:via c3 samuel 2

Safe Cflags
CHOST="i586-pc-linux-gnu"
CFLAGS="-march=c3 -m3dnow -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"

编译mplayer后,运行时提示“非法指令”
加入custom-cflags标签编译后,mplayer正常运行
查了use.desc:
custom-cflags :Build with user-specified CFLAGS (unsupported)
意思是:使用自定义的CFLAGS编译 (unsupported)

是将make.conf中设置的
CFLAGS="-march=c3 -m3dnow -O2 -pipe -fomit-frame-pointer"
参数失效吗?
 楼主| 发表于 2009-10-25 10:41:00 | 显示全部楼层
顶一下等回复。
回复 支持 反对

使用道具 举报

发表于 2009-10-25 11:34:35 | 显示全部楼层
未啟用custom-cflags時,某些包(如sys-boot/grub)的CFLAGS是在ebuild里設定的,用戶在make.conf里的設定無效;而啟用custom-cflags時,make.conf里的設定將覆蓋ebuild里的設定。

開發者之所以要整這個use,就是因為某些軟體用了用戶自定義的CFLAGS來編譯很容易出錯。

所以,盡量不要設定這個use。
回复 支持 反对

使用道具 举报

发表于 2009-10-25 11:35:31 | 显示全部楼层
3dnow是amd cpu特有的吧?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-25 12:58:27 | 显示全部楼层
谢谢3楼的解答,看来mplayer的ebuild默认的CFLAGS参数不符合我的这个老cpu,所以要启用custom-cflags标签来使用make.conf中指定的CFLAGS,这样编译出来才能正常运行。

# equery hasuse custom-cflags
[ Searching for USE flag custom-cflags in all categories among: ]
* installed packages
[I--] [  ] media-video/ffmpeg-0.5-r1 (0)
[I--] [  ] media-video/mplayer-1.0_rc2_p20090731 (0)

没装grub用dos4grub引导的。ffmpeg编译正常,如果ffmpeg中启用custom-cflags标签可能起到优化编译的效果。

另外:这CPU太慢了,放高码率的rmvb都卡。
回复 支持 反对

使用道具 举报

发表于 2009-10-25 16:34:21 | 显示全部楼层
有一些软件如果优化了编译会出错,还有一些不会编译不出错但是没法正常使用。

比如Grub legacy如果用了 -O2 ,能编译,但是使用时至少在我这里无法识别硬盘
回复 支持 反对

使用道具 举报

发表于 2009-10-25 17:58:51 | 显示全部楼层
嗯,說了最好不要用,除非你有深厚的調試程序的功底。
回复 支持 反对

使用道具 举报

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

本版积分规则

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