[LLVMdev] ELFObjectFile changes, llvm-objdump showing 'wrong' values?

Will Dietz willdtz at gmail.com
Sun Jan 22 21:32:23 PST 2012


Hi all,

I'm using the MC framework for a project, and while updating to latest
trunk (r148672) encountered the following issue:

It seems that SymbolRef::getAddress and SymbolRef::getFileOffset have
been changed to add the symbol's offset to the offset of the
containing section?

This has the following implications:

To get the /actual/ fileoffset, I now need to do:
Symbol.getFileOffset() - ContainingSection.getFileOffset()
And to get the address relative to the section, I do:
Symbol.getFileOffset() - 2*ContainingSection.getFileOffset()

I suspect this isn't the desired functionality (what use is the
original value?)?

You can also see the impact of this on the tool llvm-objdump (as well
as llvm-nm), as shown below:

Normal objdump: http://pastebin.com/Fsv3Vvye
vs llvm-objdump: http://pastebin.com/MRryQe4D

I believe r148653 caused this, but haven't verified directly.  This
didn't happen as of r148100.

Am I missing something (my code borrows a good deal from llvm-objdump
and llvm-nm, so if they are doing something wrong with respect to
these new changes, so am I), or is this something that should be
fixed?

Thanks for your time!

~Will




More information about the llvm-dev mailing list