欢迎 sinocccc 加入本站!
 免费注册  用户登陆  汇款方式  汇款确认  产品报价  联系我们  帮助中心

加入收藏
设为首页
会员体系
申请VIP
网站首页 光盘超市 软件下载 技术文章 专题 用户中心 VIP会员 网站留言 论坛 站内搜索 卓越资源 源代码

域名查询 网站空间 域名主机 数据库空间

 
今天是:2012年02月07日 星期二  您现在位于: 首页 → 技术文章 → Fedora Core 6...
   Fedora Core 6发行注记(13)-12.开发工具
作者:  出处:www.redhat.com  更新时间: 2007年03月25日 

12. 开发工具

这一节覆盖了各种开发工具和特性。

12.1. 运行时

下面是 glibc 中的新特性

  • 支持继承优先级和保持优先级的互斥量(mutex)。这是 POSIX 标准中包含的特性。

    • 继承优先级的互斥量自动防止等待互斥量带来的优先级反转。内河自动提升持有互斥量的线程,直到互斥量被释放。

    • 保持优先级允许为获得互斥量的线程设置优先级,直到互斥量被释放。这个特性对于 robust mutex 不适用。

  • 用于主机名查找的 getaddrinfo() 接口在排序目标地址时可以定制规则,通过 /etc/gai.conf 文件。

  • NIS 和 NIS+ 的速度有很大提升。

  • 完善 RFC 3542 支持 (IPv6 的高级套接字 API)。

  • 动态符号查找的速度大大提高。

  • 12.2. 工具

    链接器包含对新的 ELF 符号散列表格式的支持。使用 --hash-style 链接器选项来应用这种格式。

    12.2.1. 内核头文件

    本次发布的内核头文件是直接从内核导出的,使用 2.6.18 内核新引入的 headers_install 特性。因此,glibc-kernheaders 软件包被去除,取代它的是 kernel-headers,它是 kernel 的子软件包。

    开发者会看到新的内核头文件与过去有所不同,包括但不限于如下内容:

    • 文件 <linux/compiler.h> 被去除,因为它对于用户空间没有意义。

    • _syscallX() 被去除。用户空间应当使用 C 库中的 syscall()

    • PAGE_SIZE 在某些体系中被去除,因为可能是一个变量。用户空间应当使用 sysconf(_SC_PAGE_SIZE)getpagesize()

    • 头文件 <asm/atomic.h><asm/bitops.h> 被去除。它们不是为用户空间使用的,在一些体系中会出错,而另一些体系中会悄悄执行非原子操作。C 编译器提供了自己的内部原子操作,适于在用户空间使用。

    • #ifdef __KERNEL__ 保护的内容被彻底忽略,使用 unifdef 工具。定义 __KERNEL__ 以访问用户空间不应可见的内容这种作法不再有效。

    另外,一些其他不适于用户空间使用的头文件被去除。还有更多的头文件被修改,以去除不合适的内容。

    [注意] 内核头文件的修改并不是 Fedora 特有的

    这些修改是自上游继承的,并不是 Fedora 特有的。任何发行版如果使用最新正式导出的内核头文件,都将是这样。

    12.2.2. GCC 编译器集合

    这一版本的 Fedora 使用 GCC 4.1 构建,同时将其包含在发行版中。

    12.2.2.1. 警告
    • Fedora 开发者对 ELF 格式中,提供动态链接的符号的 .hash 段做了变动。新的 .gnu.hash 段,使用 gcc--hash-style=gnu 参数来生成,提供与过去的 hash 段相同的功能,但是带来了 50% 的动态链接性能提升。使用新的 hash 函数生成的可执行程序和库与旧的 glibc 以及动态链接器不兼容。要使用过去的 hash 规则,与过去基于 glibc 的版本兼容,可以传递 --hash-style=sysv 选项。

    • 需要 GDB 6.1 或更新的版本来调试可执行文件,除非编译时指定了 -fno-var-tracking 编译选项。

    • 选项 -fwritable-strings 不再可用。

    • 英语的诊断信息以 Unicode 编码,如果无法阅读,请将环境变量 LC_CTYPE 设置为 C 或者换用其他终端模拟程序。

    • 在大多数系统中不再安装 specs 文件。普通用户不会注意它,需要调整这个文件的开发者可以使用 -dumpspecs 选项来生成并用于编辑。

    12.2.2.2. 代码生成
    • 包含了 SSA 代码优化程序。它提供了更好的 constant propagaion, partial redundancy elimination, load and store code motion, strength reduction, dead storage elimination, better detection of unreachable code 以及累计的尾递归。

    • 自动向量化得到支持。这一技术在某些情况下,对于重复的循环可以获得更高性能。

    12.2.2.3. 语言扩展
    • 新加入的 sentinel 属性使得编译器在遇到 execl(char *path, const char *arg, ...) 这样的需要一个 NULL 参数列终结符的函数中,缺失了 NULL 的情况下会发出警告。

    • cast-as-lvalue , conditional-expression-as-lvalue , 和 compund-expression-as-lvalue 扩展都被去除。

    • #pragma pack() 的语义被修正为更接近其他编译器。

    • 对声明时带有 register 修饰符的变量取地址时,产生错误而不是警告。

    • 不完整的类型的数组会引发错误。这意味着不能对结构体的定义进行前向引用。

    • 基本的编译器,不使用任何优化时 (-O0),经测试在实际代码中速度提高了 25%。

    • 在多线程程序中库可以包含函数作用域的静态变量了。嵌入式程序员可以用选项 -fno-threadsafe-statics 关掉这一特性,但普通用户永远不要这样做。

    12.3. Ruby

    Ruby 的默认搜索路径 $: 被修改,以符合 Ruby 打包准则rbconfig 模块的 Config::CONFIG 中的一些条目也有调整。最重要的变动是:

    • sitedir 及相关目录 (sitelibdir, sitearchdir) 位于 rubylibdir 之下。它们在 /usr/lib/ruby/site_ruby 目录中,而不是 /usr/lib/site_ruby

    • 平台无关的纯 Ruby 代码位于 /usr/lib,即使是 x86_64 体系也是如此,之前是位于 /usr/lib64。这个变动影响到 Config::CONFIG 中的 rubylibdirsitelibdir 条目。

    $: 中列出的目录仍然不变,因此已有代码例如 /usr/lib/site_ruby 不需要修改。但是它们都标为过时,将在 Fedora Core 8 中去除。请遵照 Ruby 打包准则。特别的,Ruby 库只应当安装到 sitelibdirsitearchdir。即使不是打包 RPM,也应当遵守这一规则。

     (本文已被浏览 3404 次)
     发布人:sdccf
     → 推荐给我的好友
    上篇文章:Fedora Core 6发行注记(12)-11....
    下篇文章:Fedora Core 6发行注记(14)-13....
     相关文章:
    Fedora 11的新特性和简易安装教程 Fedora 10初体验
    Fedora 9新特性和安装截图 RedHat WS 4.6简单安装步骤
    Fedora 7 安装与配置指南 Fedora 7安装Intel驱动需注意事项
    Fedora 7文件系统的一些知识 Fedora 7一共有3种类型的Live镜像
    光盘启动安装Fedora 7常见问题及解决 Fedora 7下安装EVA QQ
    Fedora 7下配置多媒体 Fedora 7的字体美化
    fedora 7下飞鸽传书最新原版的简单安装过程 硬盘安装Fedora 7的简单方法
    Fedora 7下玩游戏 在fedora 7中安装星际译王与安装unrar
    Fedora 7系统中成功安装beryl Fedora 7安装后基础配置小结
    Fedora 7 DVD硬盘安装 在fedora7下安装texlive2007

    相关搜索
    查看百度中关于Fedora Core 6发行注记(13)-12.开发工具的更多内容
    查看google中关于Fedora Core 6发行注记(13)-12.开发工具的更多内容
       文章分类
    操作系统 |
    SCO_UNIX  Sun_Solaris  IBM_AIX  HP_UX  Linux  BSD  Tru64_UNIX 
    通用UNIX知识  Windows  Minix 
    程序设计 |
    Shell编程  C/C++  汇编  PHP  JAVA  Perl  Python 
    ASP/HTML  XML  中间件 
    数据库 |
    Oracle  Informix  Sybase  Fox  DB2  SQL  MySQL 
    PostgreSQL 
    网络应用 |
    网络应用 
    计算机硬件 |
    计算机主机  打印机  路由器  交换机  终端  磁带机  MO 
    刻录机  终端服务器  调制解调器 
       文章评论
      → 评论内容 (点击查看)   共0条评论,每页显示5条评论   浏览所有评论
    (没有相关评论)
      → 发表我的评论
    您的姓名: 您的Email:
    评论内容:
    250字内
    发表评论:      发表评论须知 →
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  • 关于我们 ┋  网站留言 ┋  网站地图 ┋  友情链接 ┋  与我在线 ┋  汇款确认 ┋  管理 ┋  TOP
    Unix爱好者家园  http://unix-cd.com/
    联系我们:sdccf@163.com
    腾讯QQ: 7644599
    Copyright (c) 2001-2011 Unix-cd.com. All Rights Reserved.