Hi Chuanfeng:

好的,我也会关注python-lit的进展,看维护者是否有相关review的comments。

Chenxi

发件人: Zhaochuanfeng (Steve) <zhaochuanfeng@huawei.com>
发送时间: 2023年1月28日 15:13
收件人: Chenxi Mao <chenxi.mao@suse.com>; compiler@openeuler.org <compiler@openeuler.org>
抄送: Kai Liu <kai.liu@suse.com>
主题: 答复: LLVM/Clang 多版本支持
 

Hi Chenxi

 

新年好~

我倾向于将clang-15相关的软件包导入到2203-SP1,不过2203-SP1版本已经发布,需要向release-management sig申请一下是否同意导入,好在这些包计划放在EPOL仓中,同意的可能性较大。

python-lit是放在everything仓的,需要维护者评估一下影响,可以稍等一两天。

 

Best Regards

赵川峰(Steve

 

发件人: Chenxi Mao <chenxi.mao@suse.com>
发送时间: 2023128 8:41
收件人: Zhaochuanfeng (Steve) <zhaochuanfeng@huawei.com>; compiler@openeuler.org
抄送: Kai Liu <kai.liu@suse.com>
主题: 回复: LLVM/Clang 多版本支持

 

Chuanfeng:

 

新年好,

目前clang-15相关PR已经合入master分支,想确认一下在2203-SP1上导入的策略。

 

如果要将clang-15相关PR导入2203-SP1,需要将python-lit也要在2203-SP1上进行升级,目前我已经创建相关PR,但不确定相关维护者是否同意将其在SP1上进行升级。

 

https://gitee.com/src-openeuler/python-lit/pulls/9

 

可以考虑将clang/lld中相关编译依赖移除,但可能会损失make check的能力。

 

你比较倾向于后续如何导入?

 

Chenxi


发件人: Chenxi Mao <chenxi.mao@suse.com>
发送时间: 202316 8:56
收件人: Zhaochuanfeng (Steve) <zhaochuanfeng@huawei.com>; compiler@openeuler.org <compiler@openeuler.org>
主题: 回复: LLVM/Clang 多版本支持

 

Hi Chuanfeng

>>如果要当作系统编译器:

>>需要安装clang llvm lld等包,这个包的作用是,将clangclang-15关联起来。

>>OBS构建的时候,可以在prj config定义系统编译器的版本,即可以将其对应起来

请问后续是不是会增加一个类似llvm-toolset-15的仓库,这样用户可以一把把LLVM 15相关的二进制和库安装起来,然后结合scl工具进行版本选择。

[Chenxi]: 因为可执行文件/usr/lib64/llvm15/bin/clang已经存在,因此只需要设置环境变量即可。

 

>> 上文中提到的clang包,目前不确定放在那个SRPM仓库比较合适,我暂时放在了我个人的仓库中。

>> https://gitee.com/chenxi-mao/clang-bin

通过clang-bin包把二进制做符号链接,但相关的库如何匹配呢?具体来说,/usr/lib64/llvm12/usr/lib64/llvm15下都有lib,系统会使用哪个目录下的呢?

[Chenxi]: 对应clang-X版本会使用自己路径下的lib库不需要额外处理。因为llvm整体都存在在/usr/lib64/llvm<major>下,互相不受影响。



Chenxi




发件人: Zhaochuanfeng (Steve) <zhaochuanfeng@huawei.com>
发送时间: 202315 22:26
收件人: Chenxi Mao <chenxi.mao@suse.com>; compiler@openeuler.org <compiler@openeuler.org>
主题: 答复: LLVM/Clang 多版本支持

 

Hi Chenxi,

 

感谢你的工作!我会尽快review。有两个问题请问一下:

 

>>如果要当作系统编译器:

>>需要安装clang llvm lld等包,这个包的作用是,将clangclang-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>
发送时间: 202315 9:22
收件人: compiler@openeuler.org
主题: [Compiler] LLVM/Clang 多版本支持

 

Hi compiler-sig:

 

当前第一版LLVM/Clang/LLD 15.0.6SRPM已经通过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等包,这个包的作用是,将clangclang-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