当前位置

CFLAGS 统一和 gcc 3.4

主标签

1.2的编译工作已经开始,请开发人员统一编译环境。
首先是 CFLAGS 的参数,如下。可以加入到你的 /root/.bashrc 然后 source /root/.bashrc

export CFLAGS="-march=i686 -O2 -funroll-loops -fexpensive-optimizations"
export CXXFLAGS=$CFLAGS

再次就是请大家用gcc34编译,编译之前请自行升级gcc,同时别忘了升级compat-gcc的包,不然你的ML将无法启动哟,切记!所需要的包可以从http://www.magiclinux.org/ftp/dev/beta4/os/cd1/RPMS/下载或是直接用fc3 development里的包

http://www.magiclinux.org/ftp/dev/beta4/os/cd1/RPMS/下指允许放必须放入的包,辅助的包一概不得放入,请已经大家用gcc34编译后更新一下已经有的包。

就这么多,大家有问题就提哟。

评论

包含 xml 文档的软件编译通不过,因为系统要到网上寻找一个文件,这是一个严重的 BUG,请务必更新 libxml、libxslt 和 docbook 相关的包,建议用 fc3 的包,我最近很忙,恐怕来不及,不知 conner 是否已经着手解决这个 BUG。

error: Failed dependencies:
binutils >= 2.15.90.0.1.1-2 is needed by gcc-3.4.3-2

这个包没有,给传上来哇。

请为大家准备好相关得软件包。

binutils-2.15.92.0.2-6mgc.i686.rpm
compat-libstdc++-8-3.3.4.2.i386.rpm
cpp-3.4.3-2.i686.rpm
gcc-3.4.3-2.i686.rpm
gcc-c++-3.4.3-2.i686.rpm
libgcc-3.4.3-2.i686.rpm
libstdc++-3.4.3-2.i686.rpm
libstdc++-devel-3.4.3-2.i686.rpm

以上包在 http://www.magiclinux.org/ftp/dev/beta4/os/cd1/RPMS/ 中都能找到,升级命令如下:

rpm -Uvh *.*

1. 应该使用标准宏定义表(/usr/lib/rpm/macros)定义这些优化参数。因为如果标准宏定义表定义了这些优化参数,它会覆盖个人的环境变量里的设置。你的那些设置根本不起作用!

2. 应该使用 -g -pipe 参数,-g 使得生成的 debuginfo 包额外支持 gnu 的 gdb 调试程序,易于使用,-pipe 使得编译过程使用管道而不是临时文件,从而加快编译速度。也就是说使用:
-O2 -g -pipe

各种宏定义在系统这里:
/usr/lib/rpm/macros

建议统一修改如下:
%vendor MGC Group
%optflags -O2 -g -pipe
%_arch i686
%_build_arch i686
这样建包时就无须使用 --target=i686 和 --build=i686 参数了。

至于这两个选项实在不敢苟同:
-funroll-loops -fexpensive-optimizations

请看:

-fexpensive-optimizations
Perform a number of minor optimizations that are relatively expen-
sive.

Enabled at levels -O2, -O3, -Os.

-funroll-loops
Unroll loops whose number of iterations can be determined at com-
pile time or upon entry to the loop. -funroll-loops implies both
-fstrength-reduce and -frerun-cse-after-loop. This option makes
code larger, and may or may not make it run faster.

注意:This option makes code larger, and may or may not make it run faster.

其实以前我也曾经提醒过 jackey,可他就是当耳旁风。

B4 是 gcc 3.4 么?
如果是的话我等 b4 了………

而且gcc-3.4.3编译出来的包在gcc-3.3.3下不能用,会对libstdc++.so.6造成依赖。

都没有在mgc下编译么?

你和我说过那么多事,我哪个个都记得,哈哈!
编译的-g pipe是rpm的默认参数,不需要修改就带的,是ML的默认。
对于i686来说-funroll-loops是默认优化参数,你google一下就知道。
-fexpensive-optimizations是一个优化编译的参数,特别是在使用distcc的时候。
其实beta4的速度有明显的提升,主要靠的是fontconfig的加速,所有应用程序都有明显的提高,你不妨下载6mgc的fontconfig来用用。我一直对prelink
的使用持保留意见,因为其问题多多,现有的nptl已经提高很多,不需要冒这个险去提高并不很明显的性能。

用了新的 XFree86 启动慢了很多。