[llvm-dev] Linking Linux kernel with LLD

George Rimar via llvm-dev llvm-dev at lists.llvm.org
Mon Feb 20 07:51:51 PST 2017


And I think current issue with "Kernel panic - not syncing: IO-APIC + timer doesn't work!" is also clear.

timer_irq_works(void) never returns 1:
https://github.com/torvalds/linux/blob/d966564fcdc19e13eb6ba1fbe6b8101070339c3d/arch/x86/kernel/apic/io_apic.c#L1641

I think it happens because of jiffies (http://www.makelinux.net/books/lkd2/ch10lev1sec3#ch10fig01)

It should have the same address as jiffies_64:
https://github.com/torvalds/linux/blob/b66484cd74706fa8681d051840fe4b18a3da40ff/arch/x86/kernel/vmlinux.lds.S#L41

And that is true for BFD linked binary:
 10595: ffffffff8140b000     8 OBJECT  GLOBAL DEFAULT    8 jiffies
 11730: ffffffff8140b000     8 OBJECT  GLOBAL DEFAULT    8 jiffies_64

But something is wrong with them for LLD case:
 6422: ffffffff8140b000     8 OBJECT  GLOBAL DEFAULT   19 jiffies
 7416: ffffffff81400000     0 NOTYPE  GLOBAL DEFAULT   19 jiffies_64

I think we probably incorrectly assign symbols outside SECTIONS declarations in scripts. Looking at it.


George.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170220/d2086522/attachment-0001.html>


More information about the llvm-dev mailing list