免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2002 | 回复: 0
打印 上一主题 下一主题

龙芯GCC小组:积极参与社区建设 [09年2月刊] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-06 11:16 |只看该作者 |倒序浏览


      

    大家好,新的一起专家专栏又和大家见面了,今天有幸邀请到来自中科院计算所的邢明杰工程师,让他来给我们介绍一些他们目前所从事的开源社区事务,他们目前主要负责龙芯GCC后端支持的工作。
ChinaUnix能先给大家简单介绍一下GCC的发展情况么?以及GNU的发展情况,因为GNU到现在已经25年了。
邢明杰有关GNU的背景和资料,网上有很多,我也不必在这里重复了。感谢RichardStallman为我们竖起的这面"自由"旗帜。我想,也许就是GNU的这种自由的精神,才吸引了无数的贡献者,推动着GNU一直走到今天。GCCGNU计划中最早开发出来的软件之一。
        我们知道,GCC最初也是由RichardStallman开发出来的。GCC的第一个版本于1987年发行,只支持C语言;现在GCC已经支持CC++Objective-CFortranJavaAda等语言。GCC的含义也由最初的GNU C Compiler演变为GNUCompilerCollection。具统计,现在GCC拥有的maintainer有近四百人,contributer数千人,tester数万人。规模可谓壮大。
      ChinaUnix我听说你之前创建过HelloGccWorkshop,这是一个什么样的社团,现在的状况如何?
邢明杰其实,只是在网上注册了一个空间。当时我正在尝试翻译GCCInternals,想通过这种方式来强迫自己读一遍Internals。于是便申请了一个网上空间把翻译放到上面。翻译的很粗略,而且直到现在还剩下了许多章节没有翻译,呵呵。不过,也因此在网上认识了许多朋友。teawater和我在200810月份举办了一个小型的关于GCCGDB的技术讨论会,邀请大家在一起互相交流、沟通,感觉受益匪浅。我也希望今年可以继续举办第二次技术讨论会。这是一个比较随意的社团,主要是针对GCC工具链方面的,随时欢迎大家加入。
ChinaUnixGCC(以及bintuils)现在已经加入了对龙芯2E/F的支持,你对此有何看法?
邢明杰首先,我想说明的是,对于这些工作,我并没有做出什么贡献。在binutils邮件列表上搜索loongson关键字,就可以看到,binutils社区中与龙芯相关的邮件最早是20072月份从gentoo.org发出的。我是2008年初才开始接触龙芯,当时注意到GCC还没有支持龙芯后端,大家还只是使用mips的后端来编译龙芯上的操作系统以及应用程序。而国内已经有一些朋友在网上发布了自己的patch。其中我所知道的比较活跃的两位朋友是ZhangLejamesr。我便也做了一个简单的移植,并在GCC邮件列表上发邮件询问是否有人正在做龙芯GCC的移植工作。紧接着Maxim(来自codesourcery)便回复我说他们已经着手要提交patch了。
       但是,从这件事情上,我意识到一个问题。那就是,我们需要融入到社区中,积极参与邮件列表的讨论,提交基于svn开发版本的patch,只有这样才能将自己的工作贡献到最终的GCC发行版中。如果只是在国内的论坛上发一些帖子,或者自己基于某个版本做一些修改,搞出一个仅供内部使用的版本来,最终还是无法被社区接受。其实,GCC有许多分支项目,感兴趣的朋友可以到官方网站上查看一下,上面也介绍了如何提出贡献。另外,GCC每年都会召开一次大会,会议论文也可以在网站上获得。我们上次就邀请了在2008GCCSummit上发表过文章的yingbo来参加我们的讨论会。
ChinaUnix你现在在计算所的GCC小组工作,能给大家介绍一下这个小组的情况么?
邢明杰现在,我们在吴老师的带领下,成立了一个小组,主要从事GCC方面的研究工作。一方面,为龙芯芯片的后续研发及时提供GCC编译器的支持;另一方面,与国际上的研究机构合作,开展一些前沿的科研项目。小组成立时间还不是很长,主要是由员工和在读博士,硕士组成。我们也希望有感兴趣的朋友加入进来。在这里,我也想感谢吴老师对我的指导,彭亮,衷璐洁,邱吉,徐翠萍,冯睿鑫,陈洋,黄元杰等给我的帮助。
ChinaUnix既然作为GCC的团队,如何和国际上的开源技术人员协作的,有什么值得国内的技术人员学习的地方?
邢明杰我个人认为,非常直接有效的方法,就是通过邮件列表。单从讨论技术问题这样角度考虑,我非常喜欢MailingList这样的邮件列表形式,不喜欢bbs这样的网站论坛形式。另外,我们现在跟法国INRIA合作,他们这些年在GCC社区非常活跃,我们可以通过邮件,电话会议,或者互访的形式进行交流。总之,我觉得交流是最重要的环节。
ChinaUnixGCC在和商业编译器的对比中,有何不同?
邢明杰我想,如果和商业编译器相比的话,最大的不同就应该是,GCC是非商业的。你可以自由的获得它的源代码,对它进行修改并且发布。而且,现在GCC发展很快,性能也在不断提升,甚至可以和一些商业编译器相媲美。另外,GCC支持众多的体系结构,非常易于移植。我们知道,linux本身就是通过GCC来编译的。所以说,在linux下工作的朋友一定对它不陌生。
ChinaUnix龙芯GCC移植有哪些特点,在龙芯平台上使用GCC需要注意哪些问题?
邢明杰我们知道,GCC具有很好的可移植性,而且龙芯又是基于MIPS体系结构来设计的,所以龙芯GCC的移植相对来说需要改动的地方要少许多。查看一下GCC中关于龙芯2E/F的代码,就可以看到,主要的工作包括对龙芯特有的多媒体指令的支持,指令流水线的描述以及一些其它新增指令的支持等。对于其它方面,比如说寄存器的使用,函数调用约定等,都是沿用现有的MIPS后端代码,这样也就使得在龙芯和MIPS具有一定的兼容性。在龙芯2E/F机器上,通常如果使用GCC缺省的选项来编译程序,就会生成针对MIPS1的体系结构的代码。当然,生成的程序也可以执行,但是性能会差一些。如果要生成针对龙芯2E/F的体系结构的代码,则可以加上-march=loongson2e或者-march=loongson2f这样的选项。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP