
同意方案一,-fstack-clash-protection 是gcc-8支持的新选项,理论上只能关闭。 那么gcc的patch烦请章海剑合入,我们这边接下来尝试验证firefox的功能是否有安全风险,但是不保证能完全排除。 发件人: guoge (A) 发送时间: 2020年10月28日 10:50 收件人: Zhanghaijian (A) <z.zhanghaijian@huawei.com>; gaojianxing <gaojianxing@huawei.com>; xiasenlin <xiasenlin1@huawei.com>; qiaopeixin <qiaopeixin@huawei.com> 抄送: Zhangtao (zhangtao, AX) <zhangtao221@huawei.com>; Chengwentao (Vintorcheng) <chengwentao@huawei.com>; tc <tc@openeuler.org>; dev@openeuler.org 主题: 答复: 关于firefox(79.0)依赖gcc(7.3)编译问题的讨论纪要 建议方案1,在gcc中合入bugfix 在firefox的spec文件中是否需要关闭-fstack-clash-protection建议再进一步分析,一般认为这里可能有潜在的代码隐患,最好的方式是不要去关闭一个安全检查掩耳盗铃,而是通过修改代码修复安全问题 发件人: Zhanghaijian (A) 发送时间: 2020年10月28日 10:47 收件人: gaojianxing <gaojianxing@huawei.com<mailto:gaojianxing@huawei.com>>; xiasenlin <xiasenlin1@huawei.com<mailto:xiasenlin1@huawei.com>>; guoge (A) <guoge1@huawei.com<mailto:guoge1@huawei.com>>; qiaopeixin <qiaopeixin@huawei.com<mailto:qiaopeixin@huawei.com>> 抄送: Zhangtao (zhangtao, AX) <zhangtao221@huawei.com<mailto: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<tel:+86-15958121590> Email: z.zhanghaijian@huawei.com<mailto:z.zhanghaijian@huawei.com> 发件人:Zhanghaijian (A) <z.zhanghaijian@huawei.com<mailto:z.zhanghaijian@huawei.com>> 收件人:gaojianxing <gaojianxing@huawei.com<mailto:gaojianxing@huawei.com>>;xiasenlin <xiasenlin1@huawei.com<mailto:xiasenlin1@huawei.com>>;guoge (A) <guoge1@huawei.com<mailto:guoge1@huawei.com>>;qiaopeixin <qiaopeixin@huawei.com<mailto:qiaopeixin@huawei.com>> 抄 送:Zhangtao (zhangtao, AX) <zhangtao221@huawei.com<mailto: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<tel:+86-15958121590> Email: z.zhanghaijian@huawei.com<mailto:z.zhanghaijian@huawei.com> 发件人:gaojianxing <gaojianxing@huawei.com<mailto:gaojianxing@huawei.com>> 收件人:xiasenlin <xiasenlin1@huawei.com<mailto:xiasenlin1@huawei.com>>;guoge (A) <guoge1@huawei.com<mailto:guoge1@huawei.com>>;Zhanghaijian (A) <z.zhanghaijian@huawei.com<mailto:z.zhanghaijian@huawei.com>>;qiaopeixin <qiaopeixin@huawei.com<mailto:qiaopeixin@huawei.com>> 抄 送:Zhangtao (zhangtao, AX) <zhangtao221@huawei.com<mailto: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/57b9683f0ce55a410c567fcb2dc365a2cc8... 可以解决此问题; 问题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<mailto:gaojianxing@huawei.com>>; guoge (A) <guoge1@huawei.com<mailto:guoge1@huawei.com>>; Zhanghaijian (A) <z.zhanghaijian@huawei.com<mailto:z.zhanghaijian@huawei.com>>; qiaopeixin <qiaopeixin@huawei.com<mailto: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需要移出分支。