[Beowulf] Detecting binaries that are limited to an architecture?
Olli-Pekka Lehto
olli-pekka.lehto at csc.fi
Thu May 5 15:51:06 PDT 2016
Just realized that Agner Fog has some interesting low-level utilities and libraries which might contain this type of a table:
http://www.agner.org/optimize/
In particular this one may be useful: http://www.agner.org/optimize/objconv.zip
Best regards,
O-P
> From: "Paul McIntosh" <paul.mcintosh at monash.edu>
> To: "Peter St. John" <peter.st.john at gmail.com>
> Cc: "Beowulf List" <beowulf at beowulf.org>
> Sent: Friday, 6 May, 2016 01:39:00
> Subject: Re: [Beowulf] Detecting binaries that are limited to an architecture?
> Yes – tried that and it gets the opcodes but then I am back to the issue of not
> knowing which opcodes are related to which architecture. My current train of
> though is finding something in the gcc install that works out generating the
> opcodes for an architecture and see if it can be used to reverse them.
> Paul
> From: Peter St. John [mailto:peter.st.john at gmail.com]
> Sent: Friday, 6 May 2016 7:23 AM
> To: Paul McIntosh <paul.mcintosh at monash.edu>
> Cc: Beowulf List <beowulf at beowulf.org>
> Subject: Re: [Beowulf] Detecting binaries that are limited to an architecture?
> You might run it through a decompiler; then you'd be looking at the assembler at
> least.
> Peter
> On Thu, May 5, 2016 at 4:51 PM, Paul McIntosh < paul.mcintosh at monash.edu >
> wrote:
>> All,
>> I am wondering if there is an easy way to detect if a binary makes use of
>> opcodes which are not available on a specific architecture?
>> We have /usr/local mounted across nodes with some Intel Xeon X5650
>> (Westmere) and some E5-2670 (SandyBridge). Some code spits out "Illegal
>> Instruction" when run on the old nodes and it appears to be due to hitting
>> shared libraries compiled on the newer nodes. We are going to have a similar
>> situation on the newer clusters also.
>> I have been putting together a test suite for our software stack and would
>> like to add the ability to sanity check binaries for such errors. I thought
>> there would be easy way to do this by looking at the opcodes (objdump) and
>> comparing them to what the architecture provides. However this requires
>> knowing all the opcodes from Intel manuals for a chip.
>> I have be playing with opcode.sh
>> ( https://gist.github.com/rindeal/72af275f05d44e10ebca ) which looks promising
>> but will need a bit of manual work to get it to do what I want (and still
>> may be incomplete/inaccurate).
>> Has anyone done this? Know of a way to easily get a computer readable list
>> of opcodes per cpu (note /proc/cpuinfo flags just shows features not
>> opecodes)?
>> Cheers,
>> Paul
>> --
>> Dr Paul McIntosh
>> Senior HPC Consultant, Technical Lead,
>> Multi-modal Australian ScienceS Imaging and Visualisation Environment
>> ( www.massive.org.au )
>> Monash University, Ph: 9902 0439 Mob: 0434 524935
>> _______________________________________________
>> Beowulf mailing list, Beowulf at beowulf.org sponsored by Penguin Computing
>> To change your subscription (digest mode or unsubscribe) visit
>> http://www.beowulf.org/mailman/listinfo/beowulf
> _______________________________________________
> Beowulf mailing list, Beowulf at beowulf.org sponsored by Penguin Computing
> To change your subscription (digest mode or unsubscribe) visit
> http://www.beowulf.org/mailman/listinfo/beowulf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.beowulf.org/pipermail/beowulf/attachments/20160506/8dc21291/attachment.html>
More information about the Beowulf
mailing list