-
Bug
-
Resolution: Done-Errata
-
Undefined
-
rhel-10.1
-
None
-
llvm-20.1.4-1.el10
-
No
-
Low
-
2
-
rhel-pt-llvm-rust
-
ssg_platform_tools
-
1
-
False
-
False
-
No
-
PT LLVMRustGo 2025 S6, PT LLVMRustGo 2025 S7
-
Pass
-
Manual
-
Unspecified Release Note Type - Unknown
-
Unspecified
-
Unspecified
-
Unspecified
-
None
Testing the rebase of LLVM 20 (RHEL-80988, RHEL-81006) we found out that the compat libs for LLVM19 are causing segfaults on abidiff. I did some comparisons on the compat libs in llvm-20.1.2-1.el10 and the non-compat libs on llvm-19.1.7-2.el10 and there are some differences, being aarch64 where these are most notable.
Some of my findings:
- abidiff segfaults with liblldb libclang and libclang-cpp in all archs, but with aarch libs in particular, they cause OOM and the kernel kills up to the bash process running rpminspect/abidiff.
- The *.debug filesizes are HUGE in comparison with the non-compat llvm 19 libs. We're talking about 200-300MB in the non-compat vs 1.4-1.8GB in the compat debuginfo. The following shows the difference on liblldb, although libclang and libclang-cpp are also affected.
# find . -name liblldb.so*.debug -exec du -h {} \; 266M ./before/aarch64/usr/lib/debug/usr/lib64/liblldb.so.19.1.7-19.1.7-2.el10.aarch64.debug 268M ./before/ppc64le/usr/lib/debug/usr/lib64/liblldb.so.19.1.7-19.1.7-2.el10.ppc64le.debug 267M ./before/x86_64/usr/lib/debug/usr/lib64/liblldb.so.19.1.7-19.1.7-2.el10.x86_64.debug 312M ./before/s390x/usr/lib/debug/usr/lib64/liblldb.so.19.1.7-19.1.7-2.el10.s390x.debug 273M ./after/aarch64/usr/lib/debug/usr/lib64/llvm20/lib/liblldb.so.20.1.2-20.1.2-1.el10.aarch64.debug 1.4G ./after/aarch64/usr/lib/debug/usr/lib64/liblldb.so.19.1.7-20.1.2-1.el10.aarch64.debug 275M ./after/ppc64le/usr/lib/debug/usr/lib64/llvm20/lib/liblldb.so.20.1.2-20.1.2-1.el10.ppc64le.debug 1.4G ./after/ppc64le/usr/lib/debug/usr/lib64/liblldb.so.19.1.7-20.1.2-1.el10.ppc64le.debug 274M ./after/x86_64/usr/lib/debug/usr/lib64/llvm20/lib/liblldb.so.20.1.2-20.1.2-1.el10.x86_64.debug 1.4G ./after/x86_64/usr/lib/debug/usr/lib64/liblldb.so.19.1.7-20.1.2-1.el10.x86_64.debug 320M ./after/s390x/usr/lib/debug/usr/lib64/llvm20/lib/liblldb.so.20.1.2-20.1.2-1.el10.s390x.debug 1.8G ./after/s390x/usr/lib/debug/usr/lib64/liblldb.so.19.1.7-20.1.2-1.el10.s390x.debug
- The debug-dump info difference is also massive. I ran readelf --debug-dump=info on aarch64 liblldb.so.19.1.7-19.1.7-2.el10.aarch64.debug for the non compat and liblldb.so.19.1.7-20.1.2-1.el10.aarch64.debug for the compat and dumped it to a file. The size of the non-compat dump isĀ 2.7G, while the dump of the compat is 17G.
- Difference in symbols exported. I ran nm on each debuginfo and diffed them (e.g liblldb.so.19.1.7-19.1.7-2.el10.aarch64.debug vs liblldb.so.19.1.7-20.1.2-1.el10.aarch64.debug) and the difference is massive as well:
# nm after/aarch64/usr/lib/debug/usr/lib64/liblldb.so.19.1.7-20.1.2-1.el10.aarch64.debug | wc -l 516403 # nm before/aarch64/usr/lib/debug/usr/lib64/liblldb.so.19.1.7-19.1.7-2.el10.aarch64.debug | wc -l 115218
- links to
-
RHBA-2025:148779
llvm bug fix and enhancement update