建议方案1,在gcc中合入bugfix

 

firefoxspec文件中是否需要关闭-fstack-clash-protection建议再进一步分析,一般认为这里可能有潜在的代码隐患,最好的方式是不要去关闭一个安全检查掩耳盗铃,而是通过修改代码修复安全问题

 

发件人: Zhanghaijian (A)
发送时间: 20201028 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: 关于firefox79.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: 关于firefox79.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

主 题:答复: 关于firefox79.0)依赖gcc(7.3)编译问题的讨论纪要

 

Firefox 79.0 依赖gcc7.3.0)编译问题进展

 

      在编译器组兄弟的协助下,对于firefox 79.0编译不通过问题定位如下:

 

问题1firefox79.0 RefPtr.h 中相关构造函数问题,是gcc的一个bug引起的,Patchhttps://github.com/gcc-mirror/gcc/commit/57b9683f0ce55a410c567fcb2dc365a2cc848d6a 可以解决此问题;

问题2:编译选项“-fstack-clash-protectiongcc 7.3.0 不识别问题,这个参数编译器提供的一个堆栈冲突缓解的选项,用于提高安全性的。注(编译器组兄弟说是可以去掉)

问题3:编译选项“-m64”参数不识别问题,-m64x86 64位应用编译选项,m64选项设置int32bitslong、指针为64 bits,为AMDx86 64架构生成代码。在Arm64平台无法支持,arm64 对应的选项为:-mabi=lp64

 

 

 

方案选择:

      gcc openEuler-20.03-LTS-NextopenEuler-20.03-LTS版本需要合入C++ PR/81589补丁;

      firefoxspec文件强行将默认的-fstack-clash-protection编译参数去除,注(只在openEuler-20.03-LTS-NextopenEuler-20.03-LTS)分支中移除,对arm64版本-m64参数更换为-mabi=lp64

 

 

发件人: xiasenlin
发送时间: 20201027 15:30
收件人: gaojianxing <gaojianxing@huawei.com>; guoge (A) <guoge1@huawei.com>; Zhanghaijian (A) <z.zhanghaijian@huawei.com>; qiaopeixin <qiaopeixin@huawei.com>
主题: 关于firefox79.0)依赖gcc(7.3)编译问题的讨论纪要

 

关于firefox79.0)依赖gcc(7.3)编译问题的讨论纪要

 

1.       原始问题:

firefox基于当前版本的gcc编译失败

 

2.       原因分析:

firefox79.0)需要智能指针特性,但是gcc7.3不支持(7.5及之后的版本是支持的)

 

3.       当前进展:

尝试依赖gcc7.5编译firefox79.0),在强制关闭firefox中的-fstack-clash-protection选项后可以编译成功。

 

4.       下一步计划:

对比7.37.5之间的commit,找到能在gcc7.3上让firefox编译成功的patch

 

5.       风险:

短时间内找到有风险,每次尝试gcc上打patch之后编译新的二进制后重编firefox一次需要2h

 

6.       可能的最终策略:

本次的firefox是在LTS-NEXT分支,为SP1做准备,如果月底解决不掉当前的编译问题,firefox需要移出分支。