[Lldb-commits] [Review request] Linux code generation option change plus relocation handling fix

Filipe Cabecinhas filcab at gmail.com
Tue Feb 19 12:30:40 PST 2013


Shouldn't the relocation model be set taking into account the target, and
not lldb itself?
Since Mac OS X has the debugserver, you could be on a Linux host remotely
debugging a Mac OS X program. In that case, wouldn't you want to stick to
PIC?

Thanks,

  Filipe

  F


On Tue, Feb 19, 2013 at 11:53 AM, Kaylor, Andrew <andrew.kaylor at intel.com>wrote:

>  In testing LLDB with 32-bit executables on 64-bit Linux, we came across
> some problems with the expression evaluation (among other things).  It
> turns out that in spite of LLDB’s efforts to avoid relocations by replacing
> external calls with calls to addresses, there were still some relocations
> being generated.  In particular, the absolute address-based function calls
> in the expression IR were being generated as PC-relative calls in x86
> machine code.  There was also a relocation based on the
> _GLOBAL_OFFSET_TABLE_ symbol, though the generated image contained no .got
> section.****
>
> ** **
>
> Most of these issues were resolved by fixing problems in the MCJIT code
> (which I will be committing shortly).  However, there were a couple of
> changes necessary in LLDB.  First, and most significantly, I’m modifying
> LLDB to request ‘static’ code generation rather than ‘PIC’ on Linux,
> because the ELF-version of MCJIT’s RuntimeDyld component doesn’t currently
> handle PIC code correctly.  Second, I added a function call to get
> relocations to be properly applied before generated code is copied to the
> inferior.****
>
> ** **
>
> A patch for the LLDB changes is attached.  If there are no objections,
> I’ll commit it soon.  It just seemed best to float it out for review before
> proceeding to give people a chance to comment.****
>
> ** **
>
> Thanks,****
>
> Andy****
>
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20130219/79b1994c/attachment.html>


More information about the lldb-commits mailing list