为简单起见,只编译 bbsd 部分。
configure 命令:
CC=icc CFLAGS="-tpp7 -axW -O3 -w1 -ip -unroll256 -g" AR=xiar LD=xild \
./configure --prefix=/home/bbs --enable-site=fb2k-v2 --disable-www
然后 make 和 make install 即可。
注意 CFLAGS 用的是 -ip 参数而不是 -ipo。虽然 -ipo 能够做多个文件的
Interprocedural Optimizations,比 -ip 的优化程度更高,但有一个副作用,
导致可执行文件中所有的 global symbol 变成了 local symbol,使可执行文件
的 plugin 无法访问它的 global symbol,导致加载 plugin 失败。因此,用
-ipo 参数生成的 bbsd 无法对外提供 g_session、uinfo 等符号,所以 friendtest.so
等外部服务在被加载时就无法 resolve g_session、uinfo 等符号,导致加载失败。
(这个问题有没有解决办法暂时未知)
总的来说,icc9 是一个相当不错的版本,对 automake 和 libtool 已经相当友好,
不用任何修改就能用 -ipo 参数顺利编译出所有的 kbs 程序和库,还是很让人振奋的。
--
FROM 162.105.242.*