[llvm-bugs] [Bug 27128] New: PowerPC64: jump tables cause failure during early Linux boot

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Mar 30 02:14:56 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=27128

            Bug ID: 27128
           Summary: PowerPC64: jump tables cause failure during early
                    Linux boot
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: PowerPC
          Assignee: unassignedbugs at nondot.org
          Reporter: anton at samba.org
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

A recent patch to more aggressively use jump tables ([Codegen]
Decrease minimum jump table density) has shown up an issue when using
llvm to build the PowerPC64 Linux kernel.

The kernel spends a short amount of time in early boot running at a non zero
offset. We do this by relocating everything in the TOC, then undoing that when
we copy ourselves down to 0.

We don't have an issue with jump tables on gcc because they use 32bit offsets
which get added to a base address. On llvm they are 64bit addresses. Looking
closer, it looks like llvm emits similar code to gcc when using the -fpic flag.

We've avoided the complexity and overhead of building a completely relocatable
image so far, perhaps we need to revisit that.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160330/7675956b/attachment.html>


More information about the llvm-bugs mailing list