can't compile with CLANG + ThinLTO

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,
since kernel 5.12, I compile kernel and xtables-addons-kmod with CLANG using:

1) extract the kernel source, and get the config included in
https://elrepo.org/linux/kernel/el8/SRPMS/kernel-ml-5.12.12-1.el8.elrepo.nosrc.rpm
2) inside the kernel source, execute
env LC_ALL=C TMPDIR=/var/tmp MAKEFLAGS="LLVM=1 " make oldconfig
explanation: this uses CLANG as compiler, but LTO is not enabled.
3) substitute the new .config to the one from elrepo
4) compile the kernel with
 env LC_ALL=C TMPDIR=/var/tmp MAKEFLAGS="LLVM=1" nice -n 20 rpmbuild
--noclean --nocheck --nodebuginfo --without bpftool --without perf
--without tools -ba SPECS/kernel-ml-5.12.spec
5) install and boot the new kernel
6) generate the xtables-addons-kmod with
env LC_ALL=C TMPDIR=/var/tmp MAKEFLAGS="LLVM=1" akmods --kernels
5.12.12-1.el8.clang.nolto.x86_64

I also tried using  MAKEFLAGS="LLVM=1 LLVM_IAS=1" and selecting
"thinlto" at step 2). It either failed either produced unbootable
kernels. At kernel 5.12.12, this step succeeds and produces a working
kernel.

But step 6, now becoming
env LC_ALL=C TMPDIR=/var/tmp MAKEFLAGS="LLVM=1 LLVM_IAS=1" akmods
--kernels 5.12.12-1.el8.clang.thinlto.x86_64
fails during the compilation. I tried to narrow down the problem by
calling the script generated by akmods a few times. It fails after
invoking ld.ldd with "error: permission denied". Restarting  manually
the last failed line succeeds, but relaunching the script fails at
another ld.ldd invocation.

The platform is x86_64 with CentOS 8 Stream, clang is 11.0

Could you please try to compile this module under a kernel with
CLANG+ThinLTO enabled ?

Thanks in advance

Pascal Dupuis



[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux