<div dir="ltr">You might run it through a decompiler; then you'd be looking at the assembler at least.<div>Peter</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 5, 2016 at 4:51 PM, Paul McIntosh <span dir="ltr"><<a href="mailto:paul.mcintosh@monash.edu" target="_blank">paul.mcintosh@monash.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">All,<br>
<br>
I am wondering if there is an easy way to detect if a binary makes use of<br>
opcodes which are not available on a specific architecture?<br>
<br>
We have /usr/local mounted across nodes with some Intel Xeon X5650<br>
(Westmere) and some E5-2670 (SandyBridge). Some code spits out "Illegal<br>
Instruction" when run on the old nodes and it appears to be due to hitting<br>
shared libraries compiled on the newer nodes. We are going to have a similar<br>
situation on the newer clusters also.<br>
<br>
I have been putting together a test suite for our software stack and would<br>
like to add the ability to sanity check binaries for such errors. I thought<br>
there would be easy way to do this by looking at the opcodes (objdump) and<br>
comparing them to what the architecture provides. However this requires<br>
knowing all the opcodes from Intel manuals for a chip.<br>
<br>
I have be playing with opcode.sh<br>
(<a href="https://gist.github.com/rindeal/72af275f05d44e10ebca" rel="noreferrer" target="_blank">https://gist.github.com/rindeal/72af275f05d44e10ebca</a>) which looks promising<br>
but will need a bit of manual work to get it to do what I want (and still<br>
may be incomplete/inaccurate).<br>
<br>
Has anyone done this? Know of a way to easily get a computer readable list<br>
of opcodes per cpu (note /proc/cpuinfo flags just shows features not<br>
opecodes)?<br>
<br>
Cheers,<br>
<br>
Paul<br>
--<br>
Dr Paul McIntosh<br>
  Senior HPC Consultant, Technical Lead,<br>
    Multi-modal Australian ScienceS Imaging and Visualisation Environment<br>
(<a href="http://www.massive.org.au" rel="noreferrer" target="_blank">www.massive.org.au</a>)<br>
       Monash University, Ph: 9902 0439 Mob: 0434 524935<br>
<br>
<br>
<br>
_______________________________________________<br>
Beowulf mailing list, <a href="mailto:Beowulf@beowulf.org">Beowulf@beowulf.org</a> sponsored by Penguin Computing<br>
To change your subscription (digest mode or unsubscribe) visit <a href="http://www.beowulf.org/mailman/listinfo/beowulf" rel="noreferrer" target="_blank">http://www.beowulf.org/mailman/listinfo/beowulf</a><br>
</blockquote></div><br></div>