Cnangel: September 2011的归档

因为生成so的问题,发现libtool v2.4生成代码时:
libtool --debug --tag=CXX --mode=link g++ -fPIC -g -O2 -g -Wall -D_DEBUG -shared -fpic -o libsotest.so libsotest_so-testso.o -lpthread -ldl -lcppunit
结果为:
g++ -fPIC -g -O2 -g -Wall -D_DEBUG -fpic -o libsotest.so libsotest_so-testso.o  -lpthread -ldl -lcppunit
而期望的结果应该是:
g++ -fPIC -g -O2 -g -Wall -D_DEBUG -shared -fpic -o libsotest.so libsotest_so-testso.o  -lpthread -ldl -lcppunit
低版本的libtool v1.5.22则没有这个问题,于是查找原因,经过分析,发现新版本的libtool对-shared选项有二处地方的变动,一处为func_mode_compile函数,主要是针对-shared的优化,
 2429     -shared | -static | -prefer-pic | -prefer-non-pic)
 2430       later+=" $arg"
 2431       continue
 2432       ;;
另外,在函数func_mode_link中
 6171       -shared)
 6172     # The effects of -shared are defined in a previous loop.
 6173     continue
 6174     ;;
如果得到上面的期望结果,则注释这条语句即可。

详细的问题描述见:http://my.huhoo.net/archives/2011/08/libtool.html

    Fedora16工程团队决定不使用btrfs系统作为默认的文件系统了,因为时间不充足,无法达到改变默认文件系统所要满足的基本要求。
    记得在Fedora15发布的时候,宣布fedora16将采用btrfs作为默认的文件系统,当时很好奇的试了一下,拿自己的移动硬盘格式化分区为btrfs分区,但是效果很不理想,存在很多不完善的地方,后来还是换上了reiserfs和ext4。
    brefs的主要特性是copy-on-write,如果想要知道什么是copy-on-write,可以参考COW,目标是取代Linux目前的ext3/4文件系统,改善ext3的限制,特别是单一文件的大小,总文件系统大小及加入文件校验和。加入目前ext3/4未支援的功能,例如可写的磁盘快照(snapshots)、支持递归的快照(snapshots of snapshots)、内建磁盘阵列(RAID)支援、支持子卷(Subvolumes)的概念、支持在线调整文件系统大小等。

关于此归档

这里是CnangelSeptember 2011发表的所有日记。

上一篇日记Cnangel: August 2011

下一篇日记Cnangel: October 2011

主索引归档页可以看到最新的日记和所有日记。

August 2012

Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Powered by Movable Type 5.14-en