LinuxSir.cn,穿越时空的Linuxsir!

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

请教:关于debian对i486优化

[复制链接]
发表于 2006-3-30 22:08:43 | 显示全部楼层 |阅读模式
看的有的帖子说x86平台debian是对i486优化的.
debian软件包的维护者是通过对gcc的参数
进行设置而实现的吗?
还有我发现我的两个变量是这样的:
HOSTTYPE=i486
MACHTYPE=i486-pc-linux-gnu
这是系统自动设定的吗?根据什么?
哪位能详细解释一下.谢谢
发表于 2006-3-30 22:22:28 | 显示全部楼层
现在几乎没有针对486优化的了。-m486 只是确保能在486上运行 -mtune 或者 -mcpu 还是指定成 i686 。楼主你真的是在用486么?离家两三年,很想念我的486机器啊。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-30 23:13:59 | 显示全部楼层
我用的是p III.
软件包维护者用的gcc应该也是apt安装的吧.
这是我的gcc -v:
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.0 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-awt=gtk-default --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --with-tune=i686 --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.0.3 (Debian 4.0.3-1)

target是 i486-linux-gnu
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-31 00:03:10 | 显示全部楼层
看了一下gcc的文档,原来我对target和-mtune的关系弄混了.
首先要设定目标平台-target,特别是交叉编译的,debian的就是i486-linux-gnu了.
然后设平台内的特定cpu的优化 -mtune,debian是i686.
还有疑惑:该死的x86系列有几个target Triplets:
i386-linux-gnu
i486-linux-gnu
i586-linux-gnu
i686-linux-gnu
为什么debian没选i686-linux-gnu?

等着用龙芯就好了,没这多破事儿,就一个target:mipsel-unknown-linux-gnu
回复 支持 反对

使用道具 举报

发表于 2006-3-31 02:04:16 | 显示全部楼层
本来 i486 也没那么多事,是你自己感觉不好而已。至于 i486,那是因为 debian 也许要提供更广的适应范围吧,虽然 i686 适用于 pentiumpro 以上的。。
回复 支持 反对

使用道具 举报

发表于 2006-3-31 02:42:35 | 显示全部楼层
除少数的包如内核、glibc等有供其他 architecture 的包外,Debian 的包都只是 i386 的,不是 i486!

既然楼主用的是 PIII,编译时用 i686 较好,又或用 -march=pentium3,-mtune 已被新版的 gcc 遗弃了。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-31 03:02:28 | 显示全部楼层
找了个config.guess运行一下,结果竟然是
i686-pc-linux-gnu
我真的不懂了.这个脚本是从系统里的什么地方获得这个结果的?
为什么我上面提到的两个bash变量却是i486?
回复 支持 反对

使用道具 举报

发表于 2006-3-31 03:07:01 | 显示全部楼层
Post by faxian
我用的是p III.
软件包维护者用的gcc应该也是apt安装的吧.
这是我的gcc -v:
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.0 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-awt=gtk-default --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --with-tune=i686 --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.0.3 (Debian 4.0.3-1)

target是 i486-linux-gnu
这是 Debian 的 gcc maintainer 把 gcc 编译把包时用的 target,不是你的系统啊,don't mix up.
回复 支持 反对

使用道具 举报

发表于 2006-3-31 03:22:31 | 显示全部楼层
Post by d00m3d
除少数的包如内核、glibc等有供其他 architecture 的包外,Debian 的包都只是 i386 的,不是 i486!

既然楼主用的是 PIII,编译时用 i686 较好,又或用 -march=pentium3,-mtune 已被新版的 gcc 遗弃了。。。

-mtune 被抛弃了?-mtune 不是用来替代 -mcpu 的吗??我不懂,解释一下,我很需要。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-31 03:30:20 | 显示全部楼层
to d00m3d版主,
如果我用这个gcc编译软件的话,生成的二进制的host不就是i486-linux-gnu吗!
debian软件包的维护者也是用这个apt装的gcc吧!
回复 支持 反对

使用道具 举报

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

本版积分规则

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