>>如果要当作系统编译器:
>>需要安装clang llvm lld等包,这个包的作用是,将clang与clang-15关联起来。
>>在OBS构建的时候,可以在prj config定义系统编译器的版本,即可以将其对应起来
请问后续是不是会增加一个类似llvm-toolset-15的仓库,这样用户可以一把把LLVM 15相关的二进制和库安装起来,然后结合scl工具进行版本选择。
>> 上文中提到的clang包,目前不确定放在那个SRPM仓库比较合适,我暂时放在了我个人的仓库中。
>> https://gitee.com/chenxi-mao/clang-bin
通过clang-bin包把二进制做符号链接,但相关的库如何匹配呢?具体来说,/usr/lib64/llvm12和/usr/lib64/llvm15下都有lib,系统会使用哪个目录下的呢?
Hi Chenxi,
感谢你的工作!我会尽快review。有两个问题请问一下:
>>如果要当作系统编译器:
>>需要安装clang llvm lld等包,这个包的作用是,将clang与clang-15关联起来。
>>在OBS构建的时候,可以在prj config定义系统编译器的版本,即可以将其对应起来
请问后续是不是会增加一个类似llvm-toolset-15的仓库,这样用户可以一把把LLVM 15相关的二进制和库安装起来,然后结合scl工具进行版本选择。
>> 上文中提到的clang包,目前不确定放在那个SRPM仓库比较合适,我暂时放在了我个人的仓库中。
>> https://gitee.com/chenxi-mao/clang-bin
通过clang-bin包把二进制做符号链接,但相关的库如何匹配呢?具体来说,/usr/lib64/llvm12和/usr/lib64/llvm15下都有lib,系统会使用哪个目录下的呢?
祝好,
赵川峰
发件人: Chenxi Mao <chenxi.mao@suse.com>
发送时间: 2023年1月5日
9:22
收件人: compiler@openeuler.org
主题: [Compiler] LLVM/Clang
多版本支持
Hi compiler-sig:
当前第一版LLVM/Clang/LLD 15.0.6的SRPM已经通过PR提交到社区,
链接分别是:
烦请各位维护者帮忙审核。
多版本支持的方式如下:
包名:
llvm<major>-*
clang<major>-*
lld<major>-*
例如:
clang15
llvm15-devel
安装路径:
/usr/lib64/llvm<major>
例如:
/usr/lib64/llvm15
/usr/lib64/llvm15/
├── bin
├── include
├── lib
├── libexec
└── share
这样可以同其他版本共存,此路径结构与Ubuntu/fedora相同.
/usr/bin目录下存放带-<ver>的可执行文件
lrwxrwxrwx. 1 root root 35 12月 30 15:03 /usr/bin/clang++-15 -> ../..//usr/lib64/llvm15/bin/clang++
lrwxrwxrwx. 1 root root 33 12月 30 15:03 /usr/bin/clang-15 -> ../..//usr/lib64/llvm15/bin/clang
如果要当作系统编译器:
需要安装clang llvm lld等包,这个包的作用是,将clang与clang-15关联起来。
在OBS构建的时候,可以在prj config定义系统编译器的版本,即可以将其对应起来
lrwxrwxrwx. 1 root root 33 12月 30 15:52 /usr/bin/clang -> ../..//usr/lib64/llvm15/bin/clang
lrwxrwxrwx. 1 root root 35 12月 30 15:52 /usr/bin/clang++ -> ../..//usr/lib64/llvm15/bin/clang++
这样就可以完成系统编译器和多版本编译器的支持,使用同一套路径规则和框架即可。
后续支持llvm16,只需要对应创建llvm16的仓库即可。
上文中提到的clang包,目前不确定放在那个SRPM仓库比较合适,我暂时放在了我个人的仓库中。
OBS验证工程(基于22.03-SP1)
Chenxi