Re: link time analysis for the kernel.

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

 



 
 
12.10.2018, 10:50, "Carter Cheng" <cartercheng@xxxxxxxxx>:
I managed to find some information on this from Prof John Criswell who did something similar for his dissertation but I do wonder how complicated the make files for building the kernel are since the method he used would require using llvm-link to stitch together all the different object files(bitcode) into a single file and then convert them into machine code at one go. 
 
Hello,
 
I don't think it turns into machine code at once and at the bottom Dear Valdis say could be analyzed with a patchset and LTO support last time.
All object files return step by step to the machine code and  I think we need to understand Andi Kleen's patchset logic.
 
https://github.com/SveSop/Kernel_LTO
 
I'll look at the evening as well.
 
Regards
 
Ozgur
 
On Fri, Oct 12, 2018 at 10:20 AM <valdis.kletnieks@xxxxxx> wrote:
On Thu, 11 Oct 2018 21:45:16 +0800, Carter Cheng said:

> There are some detaills about the current procedures for linking the kernel
> that I am unfamiliar with. My understanding is that GCC and Clang both have
> the ability to do link time analysis and transforms on code but is it
> possible to write link time passes that will run on the kernel since the
> linking phase is a bit different (i.e. doesnt produce an ELF file)?

The fact that the kernel gets linked is an existence proof that it is possible
to do link time processing on the kernel.

There's no LTO support in the stock 4.19 tree, but Andi Kleen did a patchset
for 4.15, and there's another patchset to enable LTO when using Clang rather
than gcc. (I haven't tried either one, don't use on a production machine, as
the resulting kernel may crash, eat filesystems, and/or turn your dog green...)

Note that 'vmlinux' is a statically linked ELF binary. That  plus a bootstrap
code gets merged to create a bzImage or similar thing that can be loaded by
Grub2 or whatever boot loader.
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]

  Powered by Linux