川峰: 基于上周讨论的内容,我基于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.