点击上方的终端研发部,右上角选择“设为星标”
每日早9点半,技术文章准时送上
公众号后台回复“学习”,获取作者独家秘制精品资料

往期文章
平常,BAT的大佬们都在做些什么?
除了敲代码,你还有什么副业吗?
2019最新Android面试题
混合开发框架的对比,Flutter更胜一筹?
一位Android大牛的BAT面试心得与经验总结
来源:tsuki
链接:https://www.zhihu.com/question/338350284
前几天,赶在华为开发者大会开幕前几天,华为已经在官方社区正式公布了方舟编译器的安装详情以及下载地址。官方介绍称,方舟编译器是基于GCC开发的交叉编译器套件,它包括了C、C++、Fortran的前端,也包括了这些语言的库(如libstdc++、libgcc等)。HCC运行在X86 linux架构服务器上,生成的二进制运行在Aarch64架构服务器上。

引起争议后,华为手机产品线副总裁李小龙在微博上对“GCC套皮说”进行了辟谣,他表示:「这个网站不是华为消费者BG维护的网站,此编译器好像是服务器部门用的,和我们之前和P30一起发布的方舟编译器没有任何关系。」华为副总裁在微博说这是另一个 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 的销量呢。
阅读更多
昨天,我又“装”上了Windows 1.0
热修复的几种方案,你可知否?
老板:请将你的代码进行Code Review!
一位Android大牛的BAT面试心得与经验总结
Android启动优化最佳方案:去启动页和异步初始化
Java泛型--BeanUtils.copyProperties引发的血案
相信自己,没有做不到的,只有想不到的
在这里获得的不仅仅是技术!


喜欢就给个“在看” 