<div dir="ltr">Shouldn't the relocation model be set taking into account the target, and not lldb itself?<div style>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?</div>
<div style><br></div><div style>Thanks,</div><div style><br></div><div style>  Filipe</div></div><div class="gmail_extra"><br clear="all"><div>  F<br></div>
<br><br><div class="gmail_quote">On Tue, Feb 19, 2013 at 11:53 AM, Kaylor, Andrew <span dir="ltr"><<a href="mailto:andrew.kaylor@intel.com" target="_blank">andrew.kaylor@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">






<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal">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.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">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.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">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.<u></u><u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thanks,<u></u><u></u></p>
<p class="MsoNormal">Andy<u></u><u></u></p>
</div>
</div>

<br>_______________________________________________<br>
lldb-commits mailing list<br>
<a href="mailto:lldb-commits@cs.uiuc.edu">lldb-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits</a><br>
<br></blockquote></div><br></div>