升级浏览器必须升级编译器是因为高版本浏览器用到了高版本编译器的c++新特性,不升级无法编译通过,如果升级编译器来支持高版本浏览器编译后,就会出现动态库升级耦合关系,C++新特性依赖高版本的libstdc++库。
-----Original Message----- From: Huxinwei Sent: Friday, November 20, 2020 10:02 AM To: Zhanghaijian (A) z.zhanghaijian@huawei.com; xiasenlin xiasenlin1@huawei.com; Jianmin Wang jianmin@iscas.ac.cn; tc tc@openeuler.org; Xiexiuqi xiexiuqi@huawei.com Cc: Hufeng (Solar, Euler) solar.hu@huawei.com; guoge (A) guoge1@huawei.com; gaojianxing gaojianxing@huawei.com Subject: 答复: 【议题申报】openEuler引入chromium浏览器替代firefox的 策略决策
所以总结下你的观点,一种为了解决库和应用之间升级耦合的规则,导致 升级浏览器必须升级编译器?
你说的原理都对,但是这个结论很反讽啊 :D
我更倾向于把 gcc 9 看做一个独立安装的 gcc 版本,和 gcc7 共存。 现在看来依赖 gcc 9,在 20.03-LTS 是个别案例,就必须强制链接特定的库。
-----邮件原件----- 发件人: Zhanghaijian (A) 发送时间: 2020年11月19日 16:25 收件人: Huxinwei huxinwei@huawei.com; xiasenlin xiasenlin1@huawei.com; Jianmin Wang jianmin@iscas.ac.cn; tc tc@openeuler.org; Xiexiuqi xiexiuqi@huawei.com 抄送: Hufeng (Solar, Euler) solar.hu@huawei.com; guoge (A) guoge1@huawei.com; gaojianxing gaojianxing@huawei.com 主题: RE: 【议题申报】openEuler引入chromium浏览器替代firefox的策略 决策
这是ABI规则,链接的是libstdc++.so.6,而不是libstdc++.so.6.0.21,这么 做就是为了库版本的升级不影响其他依赖该库的程序的运行。
这里涉及到升级的概念,升级是用新版本替代老版本,如果只依赖带版本 号的 libstdc++,那所有的库都不能做到升级,只能是多安装一个新版本(新 的软件依赖新版本的库,老的软件依赖老版本的库)。这样会导致版本管理 混乱现象。
所有的库都是这种规则: libXext.so.6 -> libXext.so.6.4.0 libXext.so.6.4.0 libxkbcommon.so.0 -> libxkbcommon.so.0.0.0 libxkbcommon.so.0.0.0 libxml2.so.2 -> libxml2.so.2.9.8 libxml2.so.2.9.8 libXrender.so.1 -> libXrender.so.1.3.0 libXrender.so.1.3.0 libxtables.so.12 -> libxtables.so.12.0.0 libxtables.so.12.0.0 libyajl.so.2 -> libyajl.so.2.1.0 libyajl.so.2.1.0 libyaml-0.so.2 -> libyaml-0.so.2.0.5 libyaml-0.so.2.0.5 libz.so -> libz.so.1.2.11 libz.so.1 -> libz.so.1.2.11 libz.so.1.2.11 libzstd.so.1 -> libzstd.so.1.3.6 libzstd.so.1.3.6
-----Original Message----- From: Huxinwei Sent: Thursday, November 19, 2020 3:28 PM To: Zhanghaijian (A) z.zhanghaijian@huawei.com; xiasenlin xiasenlin1@huawei.com; Jianmin Wang jianmin@iscas.ac.cn; tc tc@openeuler.org; Xiexiuqi xiexiuqi@huawei.com Cc: Hufeng (Solar, Euler) solar.hu@huawei.com; guoge (A) guoge1@huawei.com; gaojianxing gaojianxing@huawei.com Subject: 答复: 【议题申报】openEuler引入chromium浏览器替代firefox
的
策略决策
这个例子听起来不合理。
so 文件本身是有版本的,也就是so后面的版本后缀。 我手边的 Ubuntu 系统里, libstdc++.so.6 是指向 libstdc++.so.6.0.21 的
符
号链接。
所以我问的是为什么不能只依赖带版本号的 libstdc++ 和 libgcc
-----邮件原件----- 发件人: Zhanghaijian (A) 发送时间: 2020年11月19日 13:46 收件人: Huxinwei huxinwei@huawei.com; xiasenlin xiasenlin1@huawei.com; Jianmin Wang jianmin@iscas.ac.cn; tc tc@openeuler.org; Xiexiuqi xiexiuqi@huawei.com 抄送: Hufeng (Solar, Euler) solar.hu@huawei.com; guoge (A) guoge1@huawei.com; gaojianxing gaojianxing@huawei.com 主题: RE: 【议题申报】openEuler引入chromium浏览器替代firefox的策
略
决策
- 方案2我不理解为什么安装 Chromium 会引入 gcc 9.3,不应该只在
构建的时候引入吗?安装只依赖带版本号的 libstdc++和libgcc? 所以这里 chromium 和gcc 7.3不能共存的技术原因是什么?@
郭
歌
libstdc++.so是运行库,是gcc的一个组件,用gcc9.3编译的Chromium, Chromium会调用gcc9.3的libstdc+ libstdc+++.so的接口,有些接口是高版本引入的,gcc7.3的libstdc++.so并 没有提供这些接口, 如果OS的gcc还是gcc7.3版本,会导致Chromium加载时找不到这些接
口,
导致无法运行。
昨天刚有个例子: 用户用gcc9编了一个工具thin-provisioning-tools,在openEuler20.03上运
行
报错:nothing provides libstdc++.so.6(GLIBCXX_3.4.26)(64bit) needed by thin-provisioning-tools,就是因为openEuler20.03上的libstdc++.so库是
gcc7.3
版本,没有GLIBCXX_3.4.26,7.3最高只支持到GLIBCXX_3.4.24
-----Original Message----- From: Huxinwei Sent: Thursday, November 19, 2020 11:40 AM To: xiasenlin xiasenlin1@huawei.com; Jianmin Wang jianmin@iscas.ac.cn; tc tc@openeuler.org; Xiexiuqi xiexiuqi@huawei.com Cc: Hufeng (Solar, Euler) solar.hu@huawei.com; guoge (A) guoge1@huawei.com; gaojianxing gaojianxing@huawei.com; Zhanghaijian (A) z.zhanghaijian@huawei.com Subject: RE: 【议题申报】openEuler引入chromium浏览器替代firefox
的
策
略决策
- 张伟的角色是openEuler社区法务,不是公司法务
- 对三个方案的建议:
- 方案1需要安全委员会的意见,其他OSV社区的情况不适合作为
我
们的参考。 2. 方案2我不理解为什么安装 Chromium 会引入 gcc 9.3,不应该
只
在
构建的时候引入吗?安装只依赖带版本号的 libstdc++和libgcc? 所以这里 chromium 和gcc 7.3不能共存的技术原因是什么?@
郭
歌 3. 方案3不是独立存在的,先确认方案2的问题吧。
另外,社区讨论,建议不要使用 word 文档
-----Original Message----- From: xiasenlin [mailto:xiasenlin1@huawei.com] Sent: Thursday, November 19, 2020 10:25 AM To: Jianmin Wang jianmin@iscas.ac.cn; tc tc@openeuler.org; Xiexiuqi xiexiuqi@huawei.com Cc: Hufeng (Solar, Euler) solar.hu@huawei.com; guoge (A) guoge1@huawei.com; gaojianxing gaojianxing@huawei.com; Zhanghaijian (A) z.zhanghaijian@huawei.com Subject: [Tc] 【议题申报】openEuler引入chromium浏览器替代firefox
的
策
略决策
Hi,各位 TC 委员,
在上一次申请“升级openEuler:20.03:LTS:Next 分支的gcc,与20.09
版
本
一
致以解决firefox升级失败问题”之后,我们尝试引入chromium浏览
器
替
代
firefox,目前遇到阻塞问题并提供了可选方案(见附件),因为依然涉
及
高
版本的gcc,特申请与 TC 委员们和社区成员讨论。 谢谢。
——夏森林、章海剑