建议方案1,在gcc中合入bugfix
在firefox的spec文件中是否需要关闭-fstack-clash-protection建议再进一步分析,一般认为这里可能有潜在的代码隐患,最好的方式是不要去关闭一个安全检查掩耳盗铃,而是通过修改代码修复安全问题
发件人: Zhanghaijian (A)
发送时间: 2020年10月28日
10:47
收件人: gaojianxing <gaojianxing@huawei.com>; xiasenlin <xiasenlin1@huawei.com>; guoge (A) <guoge1@huawei.com>; qiaopeixin <qiaopeixin@huawei.com>
抄送: Zhangtao (zhangtao, AX) <zhangtao221@huawei.com>
主题: RE: 关于firefox(79.0)依赖gcc(7.3)编译问题的讨论纪要
目前就3个方案可以讨论:
1、关闭选项-fstack-clash-protection,回合bugfix patch。
2、关闭选项-fstack-clash-protection,升级gcc7.5。
3、升级gcc9.3。
方案3影响非常大,不建议。
--------------------------------------------------
章海剑 Zhang Haijian
Mobile: +86-15958121590
Email: z.zhanghaijian@huawei.com
发件人:Zhanghaijian (A) <z.zhanghaijian@huawei.com>
收件人:gaojianxing <gaojianxing@huawei.com>;xiasenlin
<xiasenlin1@huawei.com>;guoge (A) <guoge1@huawei.com>;qiaopeixin <qiaopeixin@huawei.com>
抄 送:Zhangtao (zhangtao, AX) <zhangtao221@huawei.com>
时 间:2020-10-28 10:35:47
主 题:RE:
关于firefox(79.0)依赖gcc(7.3)编译问题的讨论纪要
编译选项“-fstack-clash-protection”,我们并没有说可以去掉,去掉会降低安全性,如果要去掉,需要firefox负责人自己评估
--------------------------------------------------
章海剑 Zhang Haijian
Mobile: +86-15958121590
Email: z.zhanghaijian@huawei.com
发件人:gaojianxing <gaojianxing@huawei.com>
收件人:xiasenlin <xiasenlin1@huawei.com>;guoge
(A) <guoge1@huawei.com>;Zhanghaijian (A) <z.zhanghaijian@huawei.com>;qiaopeixin <qiaopeixin@huawei.com>
抄 送:Zhangtao (zhangtao, AX) <zhangtao221@huawei.com>
时 间:2020-10-28 10:26:09
主 题:答复:
关于firefox(79.0)依赖gcc(7.3)编译问题的讨论纪要
Firefox 79.0
依赖gcc(7.3.0)编译问题进展
在编译器组兄弟的协助下,对于firefox 79.0编译不通过问题定位如下:
问题1:firefox79.0
中 RefPtr.h
中相关构造函数问题,是gcc的一个bug引起的,Patch:https://github.com/gcc-mirror/gcc/commit/57b9683f0ce55a410c567fcb2dc365a2cc848d6a
可以解决此问题;
问题2:编译选项“-fstack-clash-protection”gcc
7.3.0 不识别问题,这个参数编译器提供的一个堆栈冲突缓解的选项,用于提高安全性的。注(编译器组兄弟说是可以去掉)
问题3:编译选项“-m64”参数不识别问题,-m64是x86
64位应用编译选项,m64选项设置int为32bits及long、指针为64
bits,为AMD的x86
64架构生成代码。在Arm64平台无法支持,arm64
对应的选项为:-mabi=lp64
方案选择:
gcc openEuler-20.03-LTS-Next、openEuler-20.03-LTS版本需要合入C++
PR/81589补丁;
在firefox的spec文件强行将默认的-fstack-clash-protection编译参数去除,注(只在openEuler-20.03-LTS-Next、openEuler-20.03-LTS)分支中移除,对arm64版本-m64参数更换为-mabi=lp64。
发件人: xiasenlin
发送时间: 2020年10月27日
15:30
收件人: gaojianxing <gaojianxing@huawei.com>; guoge (A) <guoge1@huawei.com>; Zhanghaijian (A) <z.zhanghaijian@huawei.com>;
qiaopeixin <qiaopeixin@huawei.com>
主题: 关于firefox(79.0)依赖gcc(7.3)编译问题的讨论纪要
关于firefox(79.0)依赖gcc(7.3)编译问题的讨论纪要
1.
原始问题:
firefox基于当前版本的gcc编译失败
2.
原因分析:
firefox(79.0)需要智能指针特性,但是gcc7.3不支持(7.5及之后的版本是支持的)
3.
当前进展:
尝试依赖gcc7.5编译firefox(79.0),在强制关闭firefox中的-fstack-clash-protection选项后可以编译成功。
4.
下一步计划:
对比7.3到7.5之间的commit,找到能在gcc7.3上让firefox编译成功的patch。
5.
风险:
短时间内找到有风险,每次尝试gcc上打patch之后编译新的二进制后重编firefox一次需要2h。
6.
可能的最终策略:
本次的firefox是在LTS-NEXT分支,为SP1做准备,如果月底解决不掉当前的编译问题,firefox需要移出分支。