前几天,赶在华为开发者大会开幕前几天,华为已经在官方社区正式公布了方舟编译器的安装详情以及下载地址。
官方介绍称,方舟编译器是基于GCC开发的交叉编译器套件,它包括了C、C++、Fortran的前端,也包括了这些语言的库(如libstdc++、libgcc等)。HCC运行在X86 linux架构服务器上,生成的二进制运行在Aarch64架构服务器上。
来源:tsuki
链接:https://www.zhihu.com/question/338350284
引起争议后,华为手机产品线副总裁李小龙在微博上对“GCC套皮说”进行了辟谣,他表示:「这个网站不是华为消费者BG维护的网站,此编译器好像是服务器部门用的,和我们之前和P30一起发布的方舟编译器没有任何关系。」
链接:https://www.zhihu.com/question/338350284/answer/776111129
华为副总裁在微博说这是另一个 BG 的同名产品。那我们继续等待几天后真正的方舟编译器吧。
原答案:
下载页的开始称方舟编译器叫 HCC:
我们从标注着源码下载的链接这里,下载传说中的方舟编译器:
下载下来的 tar 包却叫 gcc-ark:
解压缩一看,没找到任何名称中含 ark/fangzhou/hcc/huawei 等单词的文件,却和我刚从 Arch Linux 仓库 拉下来的 gcc 交叉工具链蜜汁相似:
https://www.archlinux.org/packages/community/x86_64/aarch64-linux-gnu-gcc/
这里我们先忽视从源码下载链接里下载到了二进制文件这个问题。
继续运行,看起来也是个 gcc。此外贴心的 GPLv3 协议摘要,提醒着华为赶紧把它开源:
尝试编译个 c 代码,目标架构的确是 elf64-littleaarch64:
继续搜索一下编译器二进制文件里的字符串,找不到任何相关的独立单词:
不过倒是可以看到一些调试信息:
到此为止,最好的情况也只可能是华为在 gcc 上加了一些 patch,增加了一些优化 pass 等,重新打包并宣称这是其「自主研发」的新一代编译器。先不提这样的行为是否有分裂社区的嫌疑。看看其当时的宣传:
说好的自主研发的多语言联合优化的 Android 上的 Java 编译器呢?
不过有人说华为开发者大会还没有召开,现在放出的这个还不是完全版。那我们就先等等,期待一下几天后放出的完全版。
希望我被打脸。毕竟我刚为华为贡献了一台 Matebook 14 的销量呢。
阅读更多
Java泛型--BeanUtils.copyProperties引发的血案
欢迎关注微信公众号:终端研发部,一起交流和学习