[prev in list] [next in list] [prev in thread] [next in thread] 

List:       llvm-bugs
Subject:    [LLVMbugs] [Bug 4275] New: Wrong code generated by JIT with
From:       bugzilla-daemon () cs ! uiuc ! edu
Date:       2009-05-27 8:16:10
Message-ID: bug-4275-206 () http ! llvm ! org/bugs/
[Download RAW message or body]

http://llvm.org/bugs/show_bug.cgi?id=4275

           Summary: Wrong code generated by JIT with --enable-pic on Linux
                    x86
           Product: new-bugs
           Version: unspecified
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: new bugs
        AssignedTo: unassignedbugs@nondot.org
        ReportedBy: Dr.Graef@t-online.de
                CC: llvmbugs@cs.uiuc.edu


If LLVM is compiled with --enable-pic (as is the default with current svn
sources), the JIT creates an improper call sequence via PLT. This only affects
Linux x86 systems, x86-64 works fine.

The symptom is a segfault in X86CompilationCallback2@plt(), see, e.g.,
http://code.google.com/p/pure-lang/issues/detail?id=9 for a detailed bug report
related to this issue.

Remark by Anton Korobeynikov on the llvmdev mailing list:

<quote>
The problem is pretty easy: nobody cared about loading GOT pointer to
ebx before doing a call via PLT. The initial patch for this was x86-64
only (and I explicitly mentioned that it won't work on x86-32 due to
this issue). Unfortunately, it was commited as-is and later when PIC
was enabled by default this subtle bug appeared...

The proper solution will be to conditionalize for x86-32 linux and
assemble a proper call sequence via PLT.
</quote>

Anton suggested that I should file a bug report, so there.


-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
LLVMbugs@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic