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

List:       llvm-commits
Subject:    Re: [llvm] r242833 - Don't iterate over the program headers in the constructor of ELFFile.
From:       Dimitar Dobrev <dpldobrev () yahoo ! com>
Date:       2015-08-03 22:43:35
Message-ID: 312174865.1307168.1438641815510.JavaMail.yahoo () mail ! yahoo ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


       This is our code: mono/CppSharp . Because of the change we can no \
longer upgrade the LLVM we use, and occasionally we need to. Of course, a \
helper function as you suggest that simply returns a list of the \
dependencies would work even better for us.  Regards,
       Dimitar
> > 
> > > > > > > > 
> mono/CppSharpCppSharp - Tools to surface C++ APIs to C# |
> > 
> View on github.com | Preview by Yahoo |
> > 
> > 


 


     On Tuesday, August 4, 2015 1:29 AM, Rafael EspĂ­ndola \
<rafael.espindola@gmail.com> wrote:  

 On 28 July 2015 at 11:22, Dimitar Dobrev <dpldobrev@yahoo.com> wrote:
> 
> Hi Rafael,
> 
> Is there any way the changes to ELF.h could be reverted? We used the
> deleted functions to get the dependencies of ELF binaries.
> Now our code is broken.

The constructor should definitely not be iterating over the program
headers (or the sections, but I am still working on that).

This code path is used by *any* tool that opens an elf file, so it
should not have code that is used by just a few.

What is your program doing? Can it walk the program header like
llvm-readobj does? We could have a helper function in ELF.h that is
*not* called by the constructor, but it would be a bit odd if no in
tree tool uses it.

Cheers,
Rafael


  


[Attachment #5 (text/html)]

<html><body><div style="color:#000; background-color:#fff; \
font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, \
sans-serif;font-size:16px"><div id="yiv9804407558"><div \
id="yui_3_16_0_1_1438608725657_174624"><div \
id="yui_3_16_0_1_1438608725657_174623" \
style="color:#000;background-color:#fff;font-family:HelveticaNeue, \
Helvetica Neue, Helvetica, Arial, Lucida Grande, \
sans-serif;font-size:16px;"><div \
id="yiv9804407558yui_3_16_0_1_1438608725657_169549"><br \
clear="none"><span></span></div><div dir="ltr" \
id="yiv9804407558yui_3_16_0_1_1438608725657_169551"><span \
class="yiv9804407558" \
id="yiv9804407558yui_3_16_0_1_1438608725657_169615">&nbsp;&nbsp;&nbsp; This \
is our code: <a rel="nofollow" shape="rect" \
id="yiv9804407558yui_3_16_0_1_1438608725657_169612" target="_blank" \
href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_mono_C \
ppSharp_blob_master_src_CppParser_Parser.cpp-23L3266&d=AwMFaQ&c=8hUWFZcy2Z-Z \
a5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=ayAun4SLiufhqzIaW \
tdlsx-NOaCKQ8f-Toq5cz97tAY&s=GfG5TnwBcUBItWTXIN72ktgiSOY0AswBW00YpdPc9Io&e=">mono/CppSharp</a> \
. Because of the change we can no longer upgrade the LLVM we use, and \
</span><span id="yiv9804407558yui_3_16_0_1_1438608725657_169615"><span \
class="yiv9804407558" \
id="yiv9804407558yui_3_16_0_1_1438608725657_169615">occasionally </span>we \
need to. Of course, a helper function as you suggest that simply returns a \
list of the dependencies would work even better for us.</span></div><div \
dir="ltr" id="yiv9804407558yui_3_16_0_1_1438608725657_170419"><br \
clear="none"></div><div dir="ltr" \
id="yiv9804407558yui_3_16_0_1_1438608725657_170421">&nbsp;&nbsp;&nbsp; \
Regards,<br clear="none"><span \
id="yiv9804407558yui_3_16_0_1_1438608725657_169615"></span></div><div \
dir="ltr" id="yiv9804407558yui_3_16_0_1_1438608725657_170420"><span \
id="yiv9804407558yui_3_16_0_1_1438608725657_169615">&nbsp;&nbsp;&nbsp; \
Dimitar</span></div><div class="yiv9804407558link-enhancr-attachment \
yiv9804407558link-enhancr-element yiv9804407558richcompose-card" \
id="yiv9804407558enhancrCard_2" style="width:450px;font-family:'Georgia', \
'Times', 'Times New Roman', \
'serif';margin-top:5px;margin-bottom:5px;background-color:#ffffff;"><table \
class="yiv9804407558link-enhancr-element" \
id="yiv9804407558yui_3_16_0_1_1438608725657_170410" \
style="width:450px;height:170px;display:block;" border="0" cellpadding="0" \
cellspacing="0"><tbody \
id="yiv9804407558yui_3_16_0_1_1438608725657_170409"><tr \
class="yiv9804407558link-enhancr-element"><td colspan="8" rowspan="1" \
class="yiv9804407558link-enhancr-element" \
style="height:1px;background-color:#e5e5e5;font-size:1px;border-collapse:collapse;"><div \
class="yiv9804407558link-enhancr-element" \
style="height:1px;background-color:#e5e5e5;font-size:1px;line-height:0px;">&nbsp;</div></td></tr><tr \
class="yiv9804407558link-enhancr-element" \
id="yiv9804407558yui_3_16_0_1_1438608725657_170408"><td colspan="1" \
rowspan="5" class="yiv9804407558link-enhancr-element" \
style="width:1px;background-color:#e5e5e5;font-size:1pt;border-collapse:collapse;"><div \
class="yiv9804407558link-enhancr-element" \
style="width:1px;background-color:#e5e5e5;font-size:1pt;">&nbsp;</div></td><td \
colspan="1" rowspan="5" class="yiv9804407558link-enhancr-element \
yiv9804407558link-enhancr-image-wrap" \
id="yiv9804407558yui_3_16_0_1_1438608725657_170426" \
style="vertical-align:middle;width:168px;height:168px;background-color:#000000;border-collapse:collapse;"><div \
class="yiv9804407558link-enhancr-element" \
id="yiv9804407558yui_3_16_0_1_1438608725657_170425" style="width:168px;" \
align="center"><a rel="nofollow" shape="rect" \
class="yiv9804407558link-enhancr-card-urlWrapper \
yiv9804407558link-enhancr-element" \
id="yiv9804407558yui_3_16_0_1_1438608725657_170424" target="_blank" \
href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_mono_C \
ppSharp_blob_master_src_CppParser_Parser.cpp-23L3266&d=AwMFaQ&c=8hUWFZcy2Z-Z \
a5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=ayAun4SLiufhqzIaWtdlsx-NOaCKQ8f-Toq5cz97tAY&s=GfG5TnwBcUBItWTXIN72ktgiSOY0AswBW00YpdPc9Io&e=" \
style="text-decoration:none;color:#000000;"><img \
class="yiv9804407558link-enhancr-thumbnail-image \
yiv9804407558link-enhancr-element yiv9804407558yahoo-ignore-inline-image" \
id="yiv9804407558yui_3_16_0_1_1438608725657_170423" alt="image" \
src="https://avatars0.githubusercontent.com/u/53395?v=3&amp;s=400" \
style="display:block;margin:auto;" height="168" \
width="168"></a></div></td><td colspan="1" rowspan="5" \
class="yiv9804407558link-enhancr-element" \
style="width:1px;background-color:#e5e5e5;font-size:0pt;border-collapse:collapse;"><div \
class="yiv9804407558link-enhancr-element" \
style="width:1px;background-color:#e5e5e5;font-size:1pt;">&nbsp;</div></td><td \
colspan="1" rowspan="5" class="yiv9804407558link-enhancr-element" \
style="width:14px;background-color:#ffffff;font-size:0pt;border-collapse:collapse;"><div \
class="yiv9804407558link-enhancr-element" \
style="width:14px;background-color:#ffffff;font-size:14pt;">&nbsp;</div></td><td \
colspan="2" rowspan="1" class="yiv9804407558link-enhancr-element" \
style="height:6px;background-color:#ffffff;font-size:0pt;border-collapse:collapse;"><div \
class="yiv9804407558link-enhancr-element" \
style="height:6px;background-color:#ffffff;font-size:6pt;">&nbsp;</div></td><td \
colspan="1" rowspan="5" class="yiv9804407558link-enhancr-element" \
id="yiv9804407558yui_3_16_0_1_1438608725657_170407" \
style="width:20px;background-color:#ffffff;font-size:0pt;border-collapse:collapse;"><div \
class="yiv9804407558link-enhancr-element" \
style="width:20px;background-color:#ffffff;font-size:20pt;">&nbsp;</div></td><td \
colspan="1" rowspan="5" class="yiv9804407558link-enhancr-element" \
style="width:1px;background-color:#e5e5e5;font-size:1pt;border-collapse:collapse;" \
width="1"><div class="yiv9804407558link-enhancr-element" \
style="width:1px;background-color:#e5e5e5;font-size:1pt;">&nbsp;</div></td></tr><tr \
id="yiv9804407558yui_3_16_0_1_1438608725657_170413"><td colspan="2" \
rowspan="1" class="yiv9804407558link-enhancr-element" \
id="yiv9804407558yui_3_16_0_1_1438608725657_170412" \
style="width:100%;vertical-align:middle;font-family:'Georgia', 'Times', \
'Times New Roman', 'serif';"><div \
class="yiv9804407558link-enhancr-text-part \
yiv9804407558link-enhancr-element" \
id="yiv9804407558yui_3_16_0_1_1438608725657_170411" \
style="line-height:16.5px;background-color:#ffffff;height:135px;width:245px;"><div \
class="yiv9804407558link-enhancr-element" \
id="yiv9804407558yui_3_16_0_1_1438608725657_170415" \
style="word-wrap:break-word;"><span \
class="yiv9804407558link-enhancr-element yiv9804407558icon \
yiv9804407558icon-shrink yiv9804407558link-enhancr-toggle" \
id="yiv9804407558yui_3_16_0_1_1438608725657_170417"></span><span \
class="yiv9804407558link-enhancr-element yiv9804407558icon \
yiv9804407558icon-close yiv9804407558link-enhancr-delete" \
id="yiv9804407558yui_3_16_0_1_1438608725657_170418"></span><a \
rel="nofollow" shape="rect" \
class="yiv9804407558link-enhancr-card-urlWrapper \
yiv9804407558link-enhancr-element" \
id="yiv9804407558yui_3_16_0_1_1438608725657_170416" target="_blank" \
href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_mono_C \
ppSharp_blob_master_src_CppParser_Parser.cpp-23L3266&d=AwMFaQ&c=8hUWFZcy2Z-Z \
a5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=ayAun4SLiufhqzIaWtdlsx-NOaCKQ8f-Toq5cz97tAY&s=GfG5TnwBcUBItWTXIN72ktgiSOY0AswBW00YpdPc9Io&e=" \
style="text-decoration:none;color:#000000;line-height:100%;font-size:18px;display:block;"><span \
class="yiv9804407558link-enhancr-element \
yiv9804407558link-enhancr-card-title" \
style="margin:0;font-weight:normal;margin-bottom:3px;font-size:18px;line-hei \
ght:21px;max-height:43px;color:#000000;overflow:hidden;display:inline-block;">mono/CppSharp</span></a><div \
class="yiv9804407558link-enhancr-card-description \
yiv9804407558link-enhancr-element" \
id="yiv9804407558yui_3_16_0_1_1438608725657_170414" \
style="font-size:13px;line-height:20px;color:#999999;max-height:81px;font-family:'Georgia', \
'Times', 'Times New Roman', 'serif';overflow:hidden;">CppSharp - Tools to \
surface C++ APIs to C#</div></div></div></td></tr><tr><td colspan="2" \
rowspan="1" class="yiv9804407558link-enhancr-element" \
style="height:4px;background-color:#ffffff;font-size:0pt;border-collapse:collapse;"><div \
class="yiv9804407558link-enhancr-element" \
style="height:4px;background-color:#ffffff;font-size:4pt;"></div></td></tr><tr><td \
colspan="1" rowspan="1" class="yiv9804407558link-enhancr-element" \
style="vertical-align:middle;font-family:'Arial', 'Helvetica Neue', \
'Helvetica', 'sans-serif';"><div class="yiv9804407558link-enhancr-element" \
style="font-size:0pt;"><a rel="nofollow" shape="rect" \
class="yiv9804407558link-enhancr-card-url \
yiv9804407558link-enhancr-element" target="_blank" \
href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_mono_C \
ppSharp_blob_master_src_CppParser_Parser.cpp-23L3266&d=AwMFaQ&c=8hUWFZcy2Z-Z \
a5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=ayAun4SLiufhqzIaWtdlsx-NOaCKQ8f-Toq5cz97tAY&s=GfG5TnwBcUBItWTXIN72ktgiSOY0AswBW00YpdPc9Io&e=" \
style="color:black;text-decoration:none;cursor:pointer;"><span \
class="yiv9804407558link-enhancr-element yiv9804407558link-enhancr-view-on" \
id="yiv9804407558yui_3_16_0_1_1438608725657_169631" \
style="display:inline-block;line-height:11px;max-width:145px;min-width:85px;overflow:hidden;max-height:13px;"><span \
class="yiv9804407558link-enhancr-element \
yiv9804407558link-enhancr-mobile-no-resize" \
style="vertical-align:middle;font-size:9px;line-height:11px;color:#999999;">View \
on <span class="yiv9804407558link-enhancr-view-on-domain" \
style="font-weight:bold;">github.com</span></span></span></a></div></td><td \
colspan="1" rowspan="1" class="yiv9804407558link-enhancr-element" \
style="vertical-align:middle;width:100px;font-family:'Arial', 'Helvetica \
Neue', 'Helvetica', 'sans-serif';"><div \
class="yiv9804407558link-enhancr-element \
yiv9804407558link-enhancr-preview-wrapper" \
style="max-width:100px;min-width:80px;overflow:hidden;text-align:right;line-height:11px;max-height:13px;font-size:0pt;"><span \
class="yiv9804407558link-enhancr-element \
yiv9804407558link-enhancr-preview-by \
yiv9804407558link-enhancr-mobile-no-resize" \
style="vertical-align:middle;font-size:9px;line-height:11px;color:#999999;">Preview \
by Yahoo</span></div></td></tr><tr><td colspan="2" rowspan="1" \
class="yiv9804407558link-enhancr-element" \
style="height:9px;background-color:#ffffff;font-size:0pt;border-collapse:collapse;"><div \
class="yiv9804407558link-enhancr-element" \
style="height:9px;background-color:#ffffff;font-size:9pt;"></div></td></tr><tr \
class="yiv9804407558link-enhancr-element"><td colspan="8" rowspan="1" \
class="yiv9804407558link-enhancr-element" \
style="height:1px;background-color:#e5e5e5;font-size:1px;border-collapse:collapse;"><div \
class="yiv9804407558link-enhancr-element" \
style="height:1px;background-color:#e5e5e5;font-size:1px;line-height:0px;">&nbsp;</div></td></tr></tbody></table></div><div \
id="yiv9804407558yui_3_16_0_1_1438608725657_169551"><br clear="none"></div> \
<br clear="none"><div id="yui_3_16_0_1_1438608725657_174631" \
class="yiv9804407558qtdSeparateBR"><br clear="none"><br \
clear="none"></div><div class="yiv9804407558yqt8886852707" \
id="yiv9804407558yqt07353"></div></div></div></div><div \
class=".yiv9804407558yahoo_quoted"> <div style="font-family:HelveticaNeue, \
Helvetica Neue, Helvetica, Arial, Lucida Grande, \
sans-serif;font-size:16px;"> <div style="font-family:HelveticaNeue, \
Helvetica Neue, Helvetica, Arial, Lucida Grande, \
sans-serif;font-size:16px;"> <div dir="ltr"> <font face="Arial" size="2"> \
On Tuesday, August 4, 2015 1:29 AM, Rafael EspĂ­ndola \
&lt;rafael.espindola@gmail.com&gt; wrote:<br clear="none"> </font> </div>  \
<br clear="none"><br clear="none"> <div \
class="yiv9804407558y_msg_container">On 28 July 2015 at 11:22, Dimitar \
Dobrev &lt;<a rel="nofollow" shape="rect" \
ymailto="mailto:dpldobrev@yahoo.com" target="_blank" \
href="mailto:dpldobrev@yahoo.com">dpldobrev@yahoo.com</a>&gt; wrote:<br \
clear="none">&gt;<br clear="none">&gt;&nbsp; &nbsp;  Hi Rafael,<br \
clear="none">&gt;<br clear="none">&gt;&nbsp; &nbsp;  Is there any way the \
changes to ELF.h could be reverted? We used the<br clear="none">&gt; \
deleted functions to get the dependencies of ELF binaries.<br \
clear="none">&gt;&nbsp; &nbsp;  Now our code is broken.<br clear="none"><br \
clear="none">The constructor should definitely not be iterating over the \
program<br clear="none">headers (or the sections, but I am still working on \
that).<br clear="none"><br clear="none">This code path is used by *any* \
tool that opens an elf file, so it<br clear="none">should not have code \
that is used by just a few.<br clear="none"><br clear="none">What is your \
program doing? Can it walk the program header like<br \
clear="none">llvm-readobj does? We could have a helper function in ELF.h \
that is<br clear="none">*not* called by the constructor, but it would be a \



_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


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

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