History log of /external/llvm/lib/Object/MachOObjectFile.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
de2d8694e25a814696358e95141f4b1aa4d8847e 20-Sep-2016 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master LLVM for rebase to r275480

Bug: http://b/31320715

This merges commit 7dcf7f03e005379ef2f06db96aa93f06186b66d5 from
aosp/dev.

Test: Build AOSP and run RenderScript tests (host tests for slang and
libbcc, RsTest, CTS)

Change-Id: Iaf3738f74312d875e69f61d604ac058f381a2a1a
/external/llvm/lib/Object/MachOObjectFile.cpp
f3ef5332fa3f4d5ec72c178a2b19dac363a19383 04-Mar-2016 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master LLVM for rebase to r256229

http://b/26987366

Change-Id: I1f29c4676a8abe633ab5707dded58d846c973d50
/external/llvm/lib/Object/MachOObjectFile.cpp
6948897e478cbd66626159776a8017b3c18579b9 01-Jul-2015 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master LLVM for rebase to r239765

Bug: 20140355: This rebase pulls the upstream fix for the spurious
warnings mentioned in the bug.

Change-Id: I7fd24253c50f4d48d900875dcf43ce3f1721a3da
/external/llvm/lib/Object/MachOObjectFile.cpp
0c7f116bb6950ef819323d855415b2f2b0aad987 06-May-2015 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master LLVM for rebase to r235153

Change-Id: I9bf53792f9fc30570e81a8d80d296c681d005ea7
/external/llvm/lib/Object/MachOObjectFile.cpp
ebe69fe11e48d322045d5949c83283927a0d790b 23-Mar-2015 Stephen Hines <srhines@google.com> Update aosp/master LLVM for rebase to r230699.

Change-Id: I2b5be30509658cb8266be782de0ab24f9099f9b9
/external/llvm/lib/Object/MachOObjectFile.cpp
37ed9c199ca639565f6ce88105f9e39e898d82d0 01-Dec-2014 Stephen Hines <srhines@google.com> Update aosp/master LLVM for rebase to r222494.

Change-Id: Ic787f5e0124df789bd26f3f24680f45e678eef2d
/external/llvm/lib/Object/MachOObjectFile.cpp
c6a4f5e819217e1e12c458aed8e7b122e23a3a58 21-Jul-2014 Stephen Hines <srhines@google.com> Update LLVM for rebase to r212749.

Includes a cherry-pick of:
r212948 - fixes a small issue with atomic calls

Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/lib/Object/MachOObjectFile.cpp
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/Object/MachOObjectFile.cpp
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/Object/MachOObjectFile.cpp
bc884fd9f7bdb64d250be639edc8dc85a20a1975 02-Nov-2013 Rafael Espindola <rafael.espindola@gmail.com> move getSymbolNMTypeChar to the one program that needs it: nm.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193933 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
6152f7d59615de9e4fa869bdc89570560c34bddb 02-Nov-2013 Rafael Espindola <rafael.espindola@gmail.com> Fix llvm-nm to mach OS X's nm on some tests.

There is still a long way to go for llvm-nm, but at least we now match
nm's letter output in the cases we test for.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193912 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
29552222c2e7cbeb37fcd15d247597467f7b8544 27-Sep-2013 Rui Ueyama <ruiu@google.com> Object/COFF: Rename getXXX{Begin,End} -> xxx_{begin,end}.

It is mentioned in the LLVM coding standard that _begin() and _end() suffixes
should be used.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191569 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
5510728d28bb1ee04abc32da3d21b7df12948053 01-Sep-2013 Charles Davis <cdavis5x@gmail.com> Move everything depending on Object/MachOFormat.h over to Support/MachO.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
f69a29b23a116a3520f185054290c445abf9aa62 27-Aug-2013 Charles Davis <cdavis5x@gmail.com> Revert "Fix the build broken by r189315." and "Move everything depending on Object/MachOFormat.h over to Support/MachO.h."

This reverts commits r189319 and r189315. r189315 broke some tests on what I
believe are big-endian platforms.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
9c3dd1b0d1e96ef408b68da3b06c6ebd6c943601 27-Aug-2013 Charles Davis <cdavis5x@gmail.com> Move everything depending on Object/MachOFormat.h over to Support/MachO.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
bf778d0546a4d8814339d946ca5c7e52291cc00c 27-Aug-2013 Charles Davis <cdavis5x@gmail.com> Support/MachO: Add a bunch of defines.

Right now we have two headers for the Mach-O format. I'd like to get rid
of one. Since the other object formats are all in Support, I chose to
keep the Mach-O header in Support, and discard the other one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
0856d3d9712c9fc515f014102e9f03f389555e75 21-Aug-2013 Jakub Staszak <kubastaszak@gmail.com> Move #includes from .h to .cpp file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
d4f9d05fde4b2cfd202a5852ec1ec3e960ef53ed 08-Aug-2013 David Fang <fang@csl.cornell.edu> initial draft of PPCMachObjectWriter.cpp
this records relocation entries in the mach-o object file
for PIC code generation.
tested on powerpc-darwin8, validated against darwin otool -rvV

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188004 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
782fdcefa50925f4a42159ae72552220c36fb24e 04-Aug-2013 Benjamin Kramer <benny.kra@googlemail.com> MachObjectFile: Don't leak on error.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187698 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
bd8f8a34ba13067e23bfff743a58df53a11a475d 23-Jul-2013 Eric Christopher <echristo@gmail.com> Typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
60d659172cb7a85ea67c5d94c9f465c98c4e4786 23-Jul-2013 Eric Christopher <echristo@gmail.com> 80-column tidying. Formatting choices by clang-format.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
9c22f87b1374b06dc6c07f6e8047890e390bbe2d 18-Jun-2013 Alexey Samsonov <samsonov@google.com> Basic support for parsing Mach-O universal binaries in LLVMObject library

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184191 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
54154f3bf1ae3d2dfd68cc9474cad061b3338a40 06-Jun-2013 Kevin Enderby <enderby@apple.com> Teach llvm-objdump with the -macho parser how to use the data in code table
from the LC_DATA_IN_CODE load command. And when disassembling print
the data in code formatted for the kind of data it and not disassemble those
bytes.

I added the format specific functionality to the derived class MachOObjectFile
since these tables only appears in Mach-O object files. This is my first
attempt to modify the libObject stuff so if folks have better suggestions
how to fit this in or suggestions on the implementation please let me know.

rdar://11791371


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183424 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
6c1202c459ffa6d693ad92fa84e43902bc780bca 05-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com> Handle relocations that don't point to symbols.

In ELF (as in MachO), not all relocations point to symbols. Represent this
properly by using a symbol_iterator instead of a SymbolRef. Update llvm-readobj
ELF's dumper to handle relocatios without symbols.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183284 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
ebb9f17240dd72f3983d2de884d77f03d6eea4c8 15-May-2013 Ahmed Bougacha <ahmed.bougacha@gmail.com> Object: Fix Mach-O relocation printing.

There were two problems that made llvm-objdump -r crash:
- for non-scattered relocations, the symbol/section index is actually in the
(aptly named) symbolnum field.
- sections are 1-indexed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
167957fa095bc7200b908e6e142be3e604bcfeea 09-May-2013 Rafael Espindola <rafael.espindola@gmail.com> Change getRelocationAdditionalInfo to be ELF only.

It was only implemented for ELF where it collected the Addend, so this
patch also renames it to getRelocationAddend.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
e87dadc44b1544c35e13cf48dfe167109929a944 30-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Fix Addend computation for non external relocations on Macho.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180790 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
59a0e79631ed851d98cf9c2ba6fa5f9aafdfdc93 30-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Add getSymbolAlignment to the ObjectFile interface.

For regular object files this is only meaningful for common symbols. An object
file format with direct support for atoms should be able to provide alignment
information for all symbols.

This replaces getCommonSymbolAlignment and fixes
test-common-symbols-alignment.ll on darwin. This also includes a fix to
MachOObjectFile::getSymbolFlags. It was marking undefined symbols as common
(already tested by existing mcjit tests now that it is used).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
2173e1839c2d00f7f980450dd537047b7b376e6b 26-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Use llvm/Object/MachO.h in macho-dumper. Drop the old macho parser.

For Mach-O there were 2 implementations for parsing object files. A
standalone llvm/Object/MachOObject.h and llvm/Object/MachO.h which
implements the generic interface in llvm/Object/ObjectFile.h.

This patch adds the missing features to MachO.h, moves macho-dump to
use MachO.h and removes ObjectFile.h.

In addition to making sure that check-all is clean, I checked that the
new version produces exactly the same output in all Mach-O files in a
llvm+clang build directory (including executables and shared
libraries).

To test the performance, I ran macho-dump over all the files in a
llvm+clang build directory again, but this time redirecting the output
to /dev/null. Both the old and new versions take about 4.6 seconds
(2.5 user) to finish.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180624 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
e5330f77cf420d71cfd46c960387eb06edeccbf8 25-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Use a pointer as the relocation iterator.

Since the relocation iterator walks only the relocations in one section, we
can just use a pointer and avoid fetching information about the section at
every reference.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
956ca7265c697107708468b7e1b2fd21f4185bae 25-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Clarify getRelocationAddress x getRelocationOffset a bit.

getRelocationAddress is for dynamic libraries and executables,
getRelocationOffset for relocatable objects.

Mark the getRelocationAddress of COFF and MachO as not implemented yet. Add a
test of ELF's. llvm-readobj -r now prints the same values as readelf -r.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180259 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
802fe9340d032d20195b00334356cf63b303386c 24-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Use pointers to iterate over symbols.

While here, don't report a dummy symbol for relocations that don't have symbols.
We used to says such relocations were for the first defined symbol, but now we
return end_symbols(). The llvm-readobj output change agrees with otool.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
51cc82887cdd6795caaffc0ece500481b697bced 24-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Revert r180189.

This should bring the ppc bots back. I will try to write a test that would
have found the problem on a little endian system too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180194 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
f69a81f001613b834960bae69cd6099265cc4d98 24-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Formatting fixes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180190 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
709d2fdb11a623ab2dd3b0a3754d09ad0f91b7e2 24-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Use a pointer as the relocation iterator.

Since the relocation iterator walks only the relocations in one section, we
can just use a pointer and avoid fetching information about the section at
every reference.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180189 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
143d223447cb55ae08d313078f7a5917873247ae 19-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> refactor the struct byte swapping to a helper function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179851 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
db5f9270207292b62ea847560c5dd4e9873b57f5 19-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Don't read one command past the end.

Thanks to Evgeniy Stepanov for reporting this.

It might be a good idea to add a command iterator abstraction to MachO.h, but
this fixes the bug for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179848 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
fd7aa38e304a09fa0ef51b85b773b649b7e58c5e 18-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> At Jim Grosbach's request detemplate Object/MachO.h.

We are still able to handle mixed endian objects by swapping one struct at a
time.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
da2a2372c6ae715befae7f086afe769dd80814f3 13-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Finish templating MachObjectFile over endianness.

We are now able to handle big endian macho files in llvm-readobject. Thanks to
David Fang for providing the object files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179440 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
e292347503cd7598429c08f9984ab3e0a44ab8a3 12-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Add 179294 back, but don't use bit fields so that it works on big endian hosts.

Original message:

Print more information about relocations.

With this patch llvm-readobj now prints if a relocation is pcrel, its length,
if it is extern and if it is scattered.

It also refactors the code a bit to use bit fields instead of shifts and
masks all over the place.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179345 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
59a8b5a8f09ae4c4f3b0e3d8025c6b4cf3ca1f1a 11-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Revert my last two commits while I debug what is wrong in a big endian host.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179303 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
4edf092787cab37d46da96eb1e9df0677ca30b1d 11-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Print more information about relocations.

With this patch llvm-readobj now prints if a relocation is pcrel, its length,
if it is extern and if it is scattered.

It also refactors the code a bit to use bit fields instead of shifts and
masks all over the place.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179294 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
8bf80061ba44af16b4597627ca7d6d7fc1bed64e 11-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Fix MachO's getRelocationAdditionalInfo.

It was returning the loaded address of the section containing the relocation,
which really doesn't seem to be the intent of this function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
b08c6df6787971502bd51e30b0f1038c1ea0dc2c 10-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Template MachOObjectFile over endianness too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179179 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
a2561a0153237291980722383f409a6499b12efc 10-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Template the MachO types over endianness.

For now they are still only used as little endian.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
f6cfc15705140cc958b784a1bc98f7f0f09be6be 09-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Convert MachOObjectFile to a template.

For now it is templated only on being 64 or 32 bits. I will add little/big
endian next.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179097 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
8faf7df1447ca6ea4a3ff8f82789923d1839fb54 09-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> More uses for SymbolTableEntryBase.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179076 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
7df9c57651574feccd53aec0aac469dea2b48bc6 09-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Add a SymbolTableEntryBase.

Use it when we don't need to know if we have a 32 or 64 bit SymbolTableEntry.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
3388589fc102b873ee9b73ffdab0f532ee3ceda6 09-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Add a SectionBase struct.

Use it to share code and when we don't need to know if we have a 32 or 64
bit Section.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
335f1d46d82a4d6b5a7317ccc73178a47b62fc25 08-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Template the MachO types over the word size.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179051 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
a9408bafcc4ea0a42f9dd7a251845372d64abb8b 08-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove is64BitLoadCommand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179048 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
9d55c099d628d7835dd1b502cb29c96cae350099 08-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Add all 4 MachO object types. Use the stored type to implement is64Bits().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
8764c8979c66966b5af62a0a316acead47c038cd 07-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Make MachOObjectFile independent from MachOObject.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178998 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
f1cc8001fd405c3ec903cb6caf97a943bb3898ae 07-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Implement MachOObjectFile::getData directly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
49698a1e691185a2a94d13edcce5c4a8d0db4762 07-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Implement MachOObjectFile::is64Bit directly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
c90cc18b6a28bfd49e74ce609e161ef178f5a2d3 07-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Implement MachOObjectFile::getHeaderSize directly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178995 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
433611bdf395d08093e3edd52846c1774b46caf2 07-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Implement MachOObjectFile::getHeader directly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178994 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
0f08eb135997a94ba37f79aaeb306993c21bbae2 07-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Implement MachOObjectFile::getHeaderSize and MachOObjectFile::getData.

These were the last missing forwarding functions. Also consistently use
the forwarding functions instead of using MachOObj directly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
6ab85a81d711b1e9d3bbc02e05812e7f867a7c40 07-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove LoadCommandInfo now that we always have a pointer to the command.

LoadCommandInfo was needed to keep a command and its offset in the file. Now
that we always have a pointer to the command, we don't need the offset.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178991 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
77638d9110d67333e4ea8e6bd3206606a89bc24f 07-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Add MachOObjectFile::LoadCommandInfo.

This avoids using MachOObject::getLoadCommandInfo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
f305127f0b46d0782f53c8aeab448f9dfeb769ec 07-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Use getLoadCommandInfo instead of MachOObj->getLoadCommandInfo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
6f1f33915a09a862fd83e7c9f1dc465c2b9e427c 07-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Construct MachOObject in MachOObjectFile's constructor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
2c6f997290f589b80da903e33718175666557dd7 07-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove unused argument.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
3eff318cbac281d46e8c8dfef16ffccbceebc855 07-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove MachOObjectFile::getObject.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
0be4eafd9c90d5e584b951fe2970f024341486c3 07-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove two uses of getObject.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
196abbffe9b7a760593d68b99cbb5f961efc8e2a 07-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove last use of InMemoryStruct in llvm-objdump.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178979 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
68d287d19e6918f46e58456fdd237c049efe372e 06-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove last use of InMemoryStruct from MachOObjectFile.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
82a21077a004087a87711bfd7a4ab171cebaa5ec 06-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Don't use InMemoryStruct<macho::SymtabLoadCommand>.

This also required not using the RegisterStringTable API, which is also a
good thing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
05b5bdd024d07e7a62f1cdc39f465e10ce5dbc6d 06-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Don't use InMemoryStruct in getSymbol64TableEntry.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178946 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
00555c13be54b7933cf5a68b50f8a7494bcd5777 06-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Don't use InMemoryStruct in getSymbolTableEntry.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
5cf0f51ae6530751eeeccefa55c87f1d3422d0ae 06-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Don't use InMemoryStruct in getRelocation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
0e5dc8aacb548d51b0ca9035a7d449a8e5862dd2 05-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Define versions of Section that are explicitly marked as little endian.

These should really be templated like ELF, but this is a start.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178896 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
c1cd6aa7a485933fa1b451c8df899ae78382b391 05-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Don't use InMemoryStruct in getSection and getSection64.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
f16c2bb320f4d5b33dfaf8df8865f547e6d66005 05-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Don't fetch pointers from a InMemoryStruct.

InMemoryStruct is extremely dangerous as it returns data from an internal
buffer when the endiannes doesn't match. This should fix the tests on big
endian hosts.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
b3e6b04aea9d12183b97770f7b250622e78fe7f1 28-Feb-2013 Eric Christopher <echristo@gmail.com> Move an assert earlier in a file and check that the result of
our bitwise compare is equal to the field we're looking for.

Noticed on inspection.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176296 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
87d0b9ed1462705dd9bf1cb7f67d0bf03af776c8 12-Feb-2013 Guy Benyei <guy.benyei@intel.com> Add static cast to unsigned char whenever a character classification function is called with a signed char argument, in order to avoid assertions in Windows Debug configuration.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
133f6b8582f12ab4fdaee3b870d4bcb12d61ca9b 31-Jan-2013 Jim Grosbach <grosbach@apple.com> Object: Fix errant fallthrough.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
cef81b37c77978cd4dddb4a5ad13564793ded155 21-Dec-2012 Rafael Espindola <rafael.espindola@gmail.com> Add a function to get the segment name of a section.

On MachO, sections also have segment names. When a tool looking at a .o file
prints a segment name, this is what they mean. In reality, a .o has only one
anonymous, segment.

This patch adds a MachO only function to fetch that segment name. I named it
getSectionFinalSegmentName since the main use for the name seems to be inform
the linker with segment this section should go to.

The patch also changes MachOObjectFile::getSectionName to return just the
section name instead of computing SegmentName,SectionName.

The main difference from the previous patch is that it doesn't use
InMemoryStruct. It is extremely dangerous: if the endians match it returns
a pointer to the file buffer, if not, it returns a pointer to an internal buffer
that is overwritten in the next API call.

We should change all of this code to use
support::detail::packed_endian_specific_integral like ELF, but since these
functions only handle strings, they work with big and little endian machines
as is.

I have tested this by installing ubuntu 12.10 ppc on qemu, that is why it took
so long :-)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
cd7ee1ced017d7a957113df9d6cf855ecbc3797e 19-Dec-2012 Rafael Espindola <rafael.espindola@gmail.com> Revert 170545 while I debug the ppc failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170547 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
f9a6bd8524ba16d3e4036304ffdc9475df6844f2 19-Dec-2012 Rafael Espindola <rafael.espindola@gmail.com> Add r170095 back.

I cannot reproduce it the failures locally, so I will keep an eye at the ppc
bots. This patch does add the change to the "Disassembly of section" message,
but that is not what was failing on the bots.

Original message:

Add a funciton to get the segment name of a section.

On MachO, sections also have segment names. When a tool looking at a .o file
prints a segment name, this is what they mean. In reality, a .o has only one
anonymous, segment.

This patch adds a MachO only function to fetch that segment name. I named it
getSectionFinalSegmentName since the main use for the name seems to be infor
the linker with segment this section should go to.

The patch also changes MachOObjectFile::getSectionName to return just the
section name instead of computing SegmentName,SectionName.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
1c2b2f9c56c01aa1c317da4fd0234eaa1fe6e739 17-Dec-2012 Tim Northover <Tim.Northover@arm.com> Teach MachO which sections contain code

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
ef8581479e58fe092178a9727f373a61b690a8df 13-Dec-2012 Eric Christopher <echristo@gmail.com> Revert "Add a funciton to get the segment name of a section."

This reverts commit r170095 since it appears to be breaking the bots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
e3ec87a6f7b718596697727e699a62aed0d40b25 13-Dec-2012 Rafael Espindola <rafael.espindola@gmail.com> Add a funciton to get the segment name of a section.

On MachO, sections also have segment names. When a tool looking at a .o file
prints a segment name, this is what they mean. In reality, a .o has only one,
anonymous, segment.

This patch adds a MachO only function to fetch that segment name. I named it
getSectionFinalSegmentName since the main use for the name seems to be informing
the linker with segment this section should go to.

The patch also changes MachOObjectFile::getSectionName to return just the
section name instead of computing SegmentName,SectionName.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170095 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
9ee68e3f729e95a12e9f266a09e8ffdbaeda83f2 12-Dec-2012 Rafael Espindola <rafael.espindola@gmail.com> Remove some dead code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169963 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f 03-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.

Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
f56c3e28b94545d7d7cf34d39d7ed87fae29d9be 29-Nov-2012 Benjamin Kramer <benny.kra@googlemail.com> Object: Pass the buffer name through when making a copy.

Should bring the buildbots back to life.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168935 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
596e474101ea9a8ecac9d8ee090d31469dbcc61d 29-Nov-2012 Jim Grosbach <grosbach@apple.com> Fix a memory leak in MachOObjectFile.

MachOObjectFile owns a MachOObj, but never frees it. Both MachOObjectFile
and MachOObj want to own the MemoryBuffer, though, so we have to be careful
and give them each one of their own.

Thanks to Greg Clayton, Eric Christopher and Michael Spencer for helping
figure out what's going wrong here.

rdar://12561773

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168923 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
a41dce3c642e50775352cce49e3a3d0cd004d393 29-Oct-2012 Tim Northover <Tim.Northover@arm.com> Add interface for querying object files for symbol values.

Currently only implemented for ELF.

Patch by Amara Emerson.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
30b20ebdd3a41e103c6aa35849a33ed299332bc9 10-Oct-2012 Andrew Kaylor <andrew.kaylor@intel.com> Cosmetic changes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165588 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
3a129c85920404e7ccdb7e655c89fa60a0309cfd 10-Oct-2012 Andrew Kaylor <andrew.kaylor@intel.com> This patch adds new functions to the SectionRef and ObjectFile interfaces to determine whether or not a section is meant to be read-only. These functions will be used by the MCJIT RuntimeDyld to give hints to the memory manager during the object loading process in a future patch.

Patch by Ashok Thirumurthi.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165586 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
e32981048244ecfa67d0bdc211af1bac2020a555 24-May-2012 Craig Topper <craig.topper@gmail.com> Mark some static arrays as const.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
41827f9ba2745cfe16d94775f6fd0803b0efef23 02-May-2012 Eli Friedman <eli.friedman@gmail.com> Fix the implementation of MachOObjectFile::isSectionZeroInit so it follows the MachO spec.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155976 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
8fc7d5c35cc79f941d2eb8e992133f94f375670a 13-Apr-2012 Benjamin Kramer <benny.kra@googlemail.com> Remove unused variable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
c68dda815e64fb2fb463318d1eaa304e22199d50 12-Apr-2012 Preston Gurd <preston.gurd@intel.com> This patch improves the MCJIT runtime dynamic loader by adding new handling
of zero-initialized sections, virtual sections and common symbols
and preventing the loading of sections which are not required for
execution such as debug information.

Patch by Andy Kaylor!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
3fd9b8422328a60664a5c631ec9519b58017fcbc 10-Apr-2012 Danil Malyshev <dmalyshev@accesssoftek.com> Add a constructor for DataRefImpl and remove excess initialization.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154371 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
6f9489a86f33624f9ff5388411d12359ce9cef20 09-Mar-2012 David Meyer <pdox@google.com> [Object]
Make Binary::TypeID more granular, to distinguish between ELF 32/64 little/big




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152435 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
97f7787bfb56ad31fe20ec0bb9c3c9f3253d14fb 01-Mar-2012 David Meyer <pdox@google.com> [Object]
Add ObjectFile::getLoadName() for retrieving the soname/installname of a shared object.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151845 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
5c2b4ea73c8f48bb5f96c86fe437385b8fb3dcda 01-Mar-2012 David Meyer <pdox@google.com> [Object]
* Add begin_dynamic_table() / end_dynamic_table() private interface to ELFObjectFile.
* Add begin_libraries_needed() / end_libraries_needed() interface to ObjectFile, for grabbing the list of needed libraries for a shared object or dynamic executable.
* Implement this new interface completely for ELF, leave stubs for COFF and MachO.
* Add 'llvm-readobj' tool for dumping ObjectFile information.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151785 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
2c67727046234ad9702ab5acb72700b5ac99a676 29-Feb-2012 David Meyer <pdox@google.com> [Object] Add symbol attribute flags: ST_ThreadLocal, ST_Common, and ST_Undefined. Implement these completely for ELF.
Rename ST_External to ST_Unknown, and slightly change its semantics. It now only indicates that the symbol's type
is unknown, not that the symbol is undefined. (For that, use ST_Undefined).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
c46255a32ec92c427e621b6d7eabd887962ce4a4 29-Feb-2012 David Meyer <pdox@google.com> In the ObjectFile interface, replace isInternal(), isAbsolute(), isGlobal(), and isWeak(), with a bitset of flags.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
dfa1896b6b61e708f002b814794890ff308172ee 28-Feb-2012 Michael J. Spencer <bigcheesegs@gmail.com> [Object] Add {begin,end}_dynamic_symbols stubs and implementation for ELF.
Add -D option to llvm-nm to dump dynamic symbols.

Patch by David Meyer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
b0436a73054fe676b216a0cf872d1fc433125c62 29-Nov-2011 Danil Malyshev <dmalyshev@accesssoftek.com> Fixed ObjectFile functions:
- getSymbolOffset() renamed as getSymbolFileOffset()
- getSymbolFileOffset(), getSymbolAddress(), getRelocationAddress() returns same result for ELFObjectFile, MachOObjectFile and COFFObjectFile.
- added getRelocationOffset()
- fixed MachOObjectFile::getSymbolSize()
- fixed MachOObjectFile::getSymbolSection()
- fixed MachOObjectFile::getSymbolOffset() for symbols without section data.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145408 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
790552c20fbd8daa77d343419f0f6ec4e7fa1457 27-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Revert r145180 as it is causing test failures on all the bots.

Original commit message:
Fixed ObjectFile functions:
- getSymbolOffset() renamed as getSymbolFileOffset()
- getSymbolFileOffset(), getSymbolAddress(), getRelocationAddress() returns same result for ELFObjectFile, MachOObjectFile and COFFObjectFile.
- added getRelocationOffset()
- fixed MachOObjectFile::getSymbolSize()
- fixed MachOObjectFile::getSymbolSection()
- fixed MachOObjectFile::getSymbolOffset() for symbols without section data.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145182 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
9b24738bd1dc791eb2c21b5562fcfe4b7b99fe2a 27-Nov-2011 Danil Malyshev <dmalyshev@accesssoftek.com> Fixed ObjectFile functions:
- getSymbolOffset() renamed as getSymbolFileOffset()
- getSymbolFileOffset(), getSymbolAddress(), getRelocationAddress() returns same result for ELFObjectFile, MachOObjectFile and COFFObjectFile.
- added getRelocationOffset()
- fixed MachOObjectFile::getSymbolSize()
- fixed MachOObjectFile::getSymbolSection()
- fixed MachOObjectFile::getSymbolOffset() for symbols without section data.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145180 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
b28bdbf8468e728501828fd41b3f2dba8db62efa 27-Oct-2011 Owen Anderson <resistor@mac.com> If we're searching for a symbol reference to pretty-print a scattered relocation address, and we don't find a symbol table entry, try section begin addresses as well.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
eb6bd339954376e4ab1fda52133ef3f94c3029b7 27-Oct-2011 Owen Anderson <resistor@mac.com> Fix pretty printing of i386 local sect diff relocations, TLV relocations, and x86_64 TLV relocations in MachO.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
1832f4d94eb292d63824eaa043118ed6cc61389b 26-Oct-2011 Owen Anderson <resistor@mac.com> Add support for scattered relocations to the MachO relocatation pretty printer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143051 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
ef22f78c68d3f096b3c8aac2752ca8e3e25106a6 26-Oct-2011 Owen Anderson <resistor@mac.com> The order of the two symbol listings in a Macho x86_64 subtractor relocation is reversed from what seems intuitive to me.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143035 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
f8261e7d07a8994e08cdba9f0e336e645daf104c 26-Oct-2011 Owen Anderson <resistor@mac.com> Include the full 64 bits of relocation data in the type info for MachO relocations, so that we can recognize scattered relocations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143033 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
9472b8d220fc746498429f430cb4c4dbfbd38f2a 26-Oct-2011 Owen Anderson <resistor@mac.com> Expand relocation type field to 64 bits. MachO scattered relocations require 33 bits of type info.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
929e27cc3c67d4c6355c7b56b2983722d28d2624 26-Oct-2011 Owen Anderson <resistor@mac.com> Improve pretty printing of GOT relocations in MachO on x86_64.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
b64541fc7285c7305c6df7a83e4514a89bdaaa7b 26-Oct-2011 Eric Christopher <echristo@apple.com> Remove unused variable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
c8aa726ec22a362bf9fe0d81fdcf68a48bfc999f 25-Oct-2011 Owen Anderson <resistor@mac.com> Remove extraneous printing of "-PC".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
0685e94895f26f96aa1032696e3150dd00aad1f3 25-Oct-2011 Owen Anderson <resistor@mac.com> Add support for the notion of "hidden" relocations. On MachO, these are relocation entries that are used as additional information for other, real relocations, rather than being relocations themselves.
I'm not familiar enough with ELF or COFF to know if they should have any relocations marked hidden.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142961 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
013d756310a92fd358a9aab2a63cce52c107f777 25-Oct-2011 Owen Anderson <resistor@mac.com> Teach the MachO relocation pretty-printer to interpret ARM half-relocations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142938 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
d8fa76d4bed067cd8662c3196211bc90cc8d4470 25-Oct-2011 Owen Anderson <resistor@mac.com> More fixes and improvements to MachO relocation pretty-printing, particular for x86 and x86_64 relocations with addends.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
0135fe1854bef035efea1e3113dc6a127ef6e51e 24-Oct-2011 Owen Anderson <resistor@mac.com> Get relocation parsing/dumping to a mostly-working state for MachO files.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
5f4e02cbf1d0fa0d8048369264201c258f2ad717 24-Oct-2011 Owen Anderson <resistor@mac.com> Stub out some of the MachO relocation decoding hooks.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
a48aab924d93be3cdb4a230a9158d210b97b3f56 21-Oct-2011 Owen Anderson <resistor@mac.com> STABS symbols are debug symbols.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
9b2b812fea4df160437e7b7d56e38f6335189ad0 18-Oct-2011 Michael J. Spencer <bigcheesegs@gmail.com> Object: Add isSymbolAbsolute and getSymbolSection.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142317 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
c38c36a8c44bd32bdfc2e48ab3e447f6dc1547bd 18-Oct-2011 Michael J. Spencer <bigcheesegs@gmail.com> Object: Add isSymbolWeak.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142316 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
1130a799ab2fd7042625163a2506518960394884 17-Oct-2011 Michael J. Spencer <bigcheesegs@gmail.com> Object: Fix redundant name.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142238 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
95f8db4d4d0110182d721586a006748b30e4fc82 13-Oct-2011 Owen Anderson <resistor@mac.com> The VMAs stored in the symbol table of a MachO file are absolute addresses, not offsets from the section.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141828 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
10a8c62d46bca8632fd827f3afc13235d81e47fd 13-Oct-2011 Owen Anderson <resistor@mac.com> Don't label a STAB debugging symbol as a function symbol.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141824 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
cd74988fb94ffc180196fed9aa2c8ee548915f86 13-Oct-2011 Owen Anderson <resistor@mac.com> sectionContainsSymbol needs to be based on VMA's rather than section indices to properly account for files with segment load commands that contain no sections.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
41242942fcbb2e6bc4e5bed3e8041f7b20ece8af 12-Oct-2011 Owen Anderson <resistor@mac.com> Section indices in MachO symbol tables begin at 1, not 0.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141815 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
f7c93a3867b45e42db6927536f76e7d2869ead60 11-Oct-2011 Owen Anderson <resistor@mac.com> Expose MachOObjectFile externally, like we do for COFF. First step in reducing the amount of special-purpose code needed for llvm-objdump.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
15565ad758ae28f21a1f8bbcc92fac49482bd820 11-Oct-2011 Michael J. Spencer <bigcheesegs@gmail.com> Fix warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
e2f2f07be7cf2b55b7e5501291bbcede87e43fd6 10-Oct-2011 Michael J. Spencer <bigcheesegs@gmail.com> Object: add getSectionAlignment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141581 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
4344b1ef9b3721a5ebc2e024f753772a1e4ddd92 07-Oct-2011 Michael J. Spencer <bigcheesegs@gmail.com> Change relocation API to be per section. This time without breaking GCC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141385 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
a48ad1333999e2fb483d23096349138af5a51ec6 07-Oct-2011 Bill Wendling <isanbard@gmail.com> Revert 141376 and 141377 due to breaking the build.

--- Reverse-merging r141377 into '.':
U tools/llvm-objdump/MachODump.cpp
--- Reverse-merging r141376 into '.':
U include/llvm/Object/COFF.h
U include/llvm/Object/ObjectFile.h
U include/llvm-c/Object.h
U tools/llvm-objdump/llvm-objdump.cpp
U lib/Object/MachOObjectFile.cpp
U lib/Object/COFFObjectFile.cpp
U lib/Object/Object.cpp
U lib/Object/ELFObjectFile.cpp



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
f1164a2487750f891694fc2e3347860e50f705fb 07-Oct-2011 Michael J. Spencer <bigcheesegs@gmail.com> Change relocation API to be per section.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141376 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
13afc5eff2d7370ab486d5039886ab8bbf9039da 28-Sep-2011 Michael J. Spencer <bigcheesegs@gmail.com> Object: Add isSection{Data,BSS}.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
ac241fe9f0d73c6f632e4f7f89e06b698d39da54 14-Sep-2011 Benjamin Kramer <benny.kra@googlemail.com> Object: make the following changes into SymbolRef

- Add enum SymbolType and function getSymbolType()
- Add function isGlobal() - it's returns true for symbols that can be used in another objects, such as library functions.
- Rename function getAddress() to getOffset() and add new function getAddress(), because currently getAddress() returns section offset of symbol first byte. new getAddress() return symbol address.
- Change usage SymbolRef::getAddress() to getOffset() in tools/llvm-nm and tools/llvm-objdump.

Patch by Danil Malyshev!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139683 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
d40b0b0a0632d4b20631ac2196e0a07abb704343 09-Sep-2011 Benjamin Kramer <benny.kra@googlemail.com> Remove dead code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139343 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
58856eae1629f7176f2dbde822bb4220773f72fc 09-Sep-2011 Nick Lewycky <nicholas@mxc.ca> Fix release build:
MachOObjectFile.cpp:524: error: unused variable 'NumLoadCommands' [-Wunused-variable]


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139341 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
0fcab076f0358890e2f1b213f4303c780e05d99d 08-Sep-2011 Benjamin Kramer <benny.kra@googlemail.com> Add support for relocations to ObjectFile.

Patch by Danil Malyshev!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
07ea23aa2d17f701fa125442c20c1eba75b55fdb 15-Jul-2011 Benjamin Kramer <benny.kra@googlemail.com> ObjectFile: Add a method to check whether a section contains a symbol.

- No ELF or COFF implementation yet, I don't have a way to test that.
Should be straightforward to add though.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135288 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
32fb2af67988348f9f341005c35b1ed544d13265 15-Jul-2011 Benjamin Kramer <benny.kra@googlemail.com> MachOObjectFile: Get symbol functions ready for 64 bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135282 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
291e767dcf19d60b8e774114efc6e10f2e022844 15-Jul-2011 Benjamin Kramer <benny.kra@googlemail.com> Output MachO section names in the form SEGMENT,section.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
7d145789c01f9a1863ea02574bc3f9567c8a33fa 15-Jul-2011 Benjamin Kramer <benny.kra@googlemail.com> Add support for 64 bit objects to MachOObjectFile.

- I don't see a better way than duplicating all the code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
82ba5b7c40add3d8d7516d81b9ff288545b821fc 15-Jul-2011 Benjamin Kramer <benny.kra@googlemail.com> MachOObjectFile: Change isSectionText to return true for sections named text, not for load commands name __TEXT (which isn't the case in actual object files)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
25b15777df42d5d608810f6881b6c98107481d69 25-Jun-2011 Michael J. Spencer <bigcheesegs@gmail.com> Object: Add proper error handling.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133872 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
001c9205fca2220480589ec355cb6ec701a37e08 25-Jun-2011 Michael J. Spencer <bigcheesegs@gmail.com> Make Binary the parent of ObjectFile and update children to new interface.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133870 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
5e45dc40d329829ad23bf444f32dca221215e239 13-Jun-2011 Michael J. Spencer <bigcheesegs@gmail.com> Revert the last two commits in the series. r132911, r132912.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132913 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
69aec36f9b3129ba6eb83d64cde31c3d86d6d39a 13-Jun-2011 Michael J. Spencer <bigcheesegs@gmail.com> Make Binary the parent of ObjectFile and update children to new interface.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132911 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
f4b2f933a98e402083134f710a5d247c42e39ed5 22-Apr-2011 Eric Christopher <echristo@apple.com> Use enums for constant values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
9ab1d7f9b2d4caf1b8a5af91b74a7b13f1ac8986 22-Apr-2011 Eric Christopher <echristo@apple.com> Make the file format strings a little prettier for mach-o.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp
6256b03674f4d50d1c035aa3ecba45df1345ea79 22-Apr-2011 Eric Christopher <echristo@apple.com> Add an ObjectFile implementation for mach-o.

Patch by Patrick Walton!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129974 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Object/MachOObjectFile.cpp