川峰:
基于上周讨论的内容,我基于openEuler2303的python3包,做了clang编译器的调研,共有下面几项结论:
clang-15应该被作为系统编译器使用,某些开源软件对于非系统编译器的支持存在问题(即不能找到xxx-15的可执行文件,而是hardcode的xxx文件,使用环境变量也无法代替)。为了减少各个软件包的适配难度,将clang-15作为默认系统编译器是比较好的选择。将clang-15作为系统编译器可以参考我的gitee工程: https://gitee.com/chenxi-mao/clang-bin 包名可以叫做clang/llvm/lld-default。这样就可以在spec中直接定义系统编译器的版本,如15/16。免去在各个RPM包中修改。 在 RPM打包时如何切换编译器工具链中,额外不仅要对于CC/CPP进行处理,还需要对AR/READELF等变量进行同样处理。即使用llvm-ar/llvm-readelf替代原有的gnu binutils。 增加LTO的打开关闭开关,默认打开LTO,如果软件包不支持,可以手动关闭。
以上信息供参考。
Chenxi
多谢晨曦~
关于第一个问题,因为目前clang-15还不是直接安装在系统目录下,确实会出现软件包适配问题。我原计划在验证环境上把clang-15设置成系统编译器,不影响23.03的版本发布。 至于如何将clang-15设置为系统编译器,我建议我们在明天的Compiler SIG例会上作为一个议题再讨论一下。
Best Regards 赵川峰(Steve)
发件人: Chenxi Mao chenxi.mao@suse.com 发送时间: 2023年3月13日 8:42 收件人: Zhaochuanfeng (Steve) zhaochuanfeng@huawei.com 抄送: Kai Liu kai.liu@suse.com; compiler@openeuler.org 主题: LLVM平行宇宙调研
川峰: 基于上周讨论的内容,我基于openEuler2303的python3包,做了clang编译器的调研,共有下面几项结论:
1. clang-15应该被作为系统编译器使用,某些开源软件对于非系统编译器的支持存在问题(即不能找到xxx-15的可执行文件,而是hardcode的xxx文件,使用环境变量也无法代替)。为了减少各个软件包的适配难度,将clang-15作为默认系统编译器是比较好的选择。将clang-15作为系统编译器可以参考我的gitee工程:https://gitee.com/chenxi-mao/clang-bin 包名可以叫做clang/llvm/lld-default。这样就可以在spec中直接定义系统编译器的版本,如15/16。免去在各个RPM包中修改。 2. 在RPM打包时如何切换编译器工具链中,额外不仅要对于CC/CPP进行处理,还需要对AR/READELF等变量进行同样处理。即使用llvm-ar/llvm-readelf替代原有的gnu binutils。 3. 增加LTO的打开关闭开关,默认打开LTO,如果软件包不支持,可以手动关闭。
以上信息供参考。
Chenxi
1.
Hi Chuanfeng:
不需要安装到系统目录,只需要保证可执行文件的链接存在即可。 你可以尝试使用https://build.openeuler.openatom.cn/package/show/home:chenxi.mao:branches:op...
这个生成的RPM包,将其作为buildrequires,看是否可以解决你提到的问题。 以我在python3上面是可以解决问题的。
Chenxi ________________________________ 发件人: Zhaochuanfeng (Steve) zhaochuanfeng@huawei.com 发送时间: 2023年3月13日 9:34 收件人: Chenxi Mao chenxi.mao@suse.com 抄送: Kai Liu kai.liu@suse.com; compiler@openeuler.org compiler@openeuler.org 主题: 答复: LLVM平行宇宙调研
多谢晨曦~
关于第一个问题,因为目前clang-15还不是直接安装在系统目录下,确实会出现软件包适配问题。我原计划在验证环境上把clang-15设置成系统编译器,不影响23.03的版本发布。
至于如何将clang-15设置为系统编译器,我建议我们在明天的Compiler SIG例会上作为一个议题再讨论一下。
Best Regards
赵川峰(Steve)
发件人: Chenxi Mao chenxi.mao@suse.com 发送时间: 2023年3月13日 8:42 收件人: Zhaochuanfeng (Steve) zhaochuanfeng@huawei.com 抄送: Kai Liu kai.liu@suse.com; compiler@openeuler.org 主题: LLVM平行宇宙调研
川峰:
基于上周讨论的内容,我基于openEuler2303的python3包,做了clang编译器的调研,共有下面几项结论:
1. clang-15应该被作为系统编译器使用,某些开源软件对于非系统编译器的支持存在问题(即不能找到xxx-15的可执行文件,而是hardcode的xxx文件,使用环境变量也无法代替)。为了减少各个软件包的适配难度,将clang-15作为默认系统编译器是比较好的选择。将clang-15作为系统编译器可以参考我的gitee工程:https://gitee.com/chenxi-mao/clang-bin 包名可以叫做clang/llvm/lld-default。这样就可以在spec中直接定义系统编译器的版本,如15/16。免去在各个RPM包中修改。 2. 在RPM打包时如何切换编译器工具链中,额外不仅要对于CC/CPP进行处理,还需要对AR/READELF等变量进行同样处理。即使用llvm-ar/llvm-readelf替代原有的gnu binutils。 3. 增加LTO的打开关闭开关,默认打开LTO,如果软件包不支持,可以手动关闭。
以上信息供参考。
Chenxi
1.
还有一点,为了保证兼容性,LLVM须使用“-gdwarf-4”参数保证与GNU编译器兼容。
________________________________ 发件人: Chenxi Mao chenxi.mao@suse.com 发送时间: 2023年3月13日 8:42 收件人: Zhaochuanfeng (Steve) zhaochuanfeng@huawei.com 抄送: Kai Liu kai.liu@suse.com; compiler@openeuler.org compiler@openeuler.org 主题: LLVM平行宇宙调研
川峰: 基于上周讨论的内容,我基于openEuler2303的python3包,做了clang编译器的调研,共有下面几项结论:
1. clang-15应该被作为系统编译器使用,某些开源软件对于非系统编译器的支持存在问题(即不能找到xxx-15的可执行文件,而是hardcode的xxx文件,使用环境变量也无法代替)。为了减少各个软件包的适配难度,将clang-15作为默认系统编译器是比较好的选择。将clang-15作为系统编译器可以参考我的gitee工程:https://gitee.com/chenxi-mao/clang-bin 包名可以叫做clang/llvm/lld-default。这样就可以在spec中直接定义系统编译器的版本,如15/16。免去在各个RPM包中修改。 2. 在RPM打包时如何切换编译器工具链中,额外不仅要对于CC/CPP进行处理,还需要对AR/READELF等变量进行同样处理。即使用llvm-ar/llvm-readelf替代原有的gnu binutils。 3. 增加LTO的打开关闭开关,默认打开LTO,如果软件包不支持,可以手动关闭。
以上信息供参考。
Chenxi
1.