Rafael Espindola
e883514736
Fix printing of 64 bit values and make test more strict.
...
llvm-svn: 249043
2015-10-01 17:57:31 +00:00
Davide Italiano
26fabd7ac5
[llvm-readobj/MachO] Ensure we always have valid CmdName/SegmentName.
...
Otherwise we might end up printing garbage while dumping.
Differential Revision: http://reviews.llvm.org/D13041
llvm-svn: 248239
2015-09-22 02:14:43 +00:00
Rafael Espindola
8055ed0c12
Avoid SEGFAULT if a requested symbol section is absent.
...
Patch by Igor Kudrin!
llvm-svn: 248194
2015-09-21 19:17:18 +00:00
Craig Topper
0013be16ff
Use makeArrayRef or None to avoid unnecessarily mentioning the ArrayRef type extra times. NFC
...
llvm-svn: 248140
2015-09-21 05:32:41 +00:00
Davide Italiano
096cda11fc
[llvm-readobj] Fix another "time of check to time of use bug".
...
It seems there's more copy-paste between tools than needed.
llvm-svn: 247954
2015-09-17 22:29:58 +00:00
Davide Italiano
9a429b766f
[llvm-readobj] MachO -- dump LinkerOptions load command.
...
Example output:
Linker Options {
Size: 32
Count: 2
Strings [
Value: -framework
Value: Cocoa
]
}
There were only two tests using this -- so I converted them as part of
this commit rather than separately.
Differential Revision: http://reviews.llvm.org/D12702
llvm-svn: 247106
2015-09-09 00:21:18 +00:00
Davide Italiano
baec437f54
[llvm-readobj] MachO: dump the correct field.
...
This was found while converting a test from macho-dump to llvm-readobj
and will once I commit the converted test.
llvm-svn: 246868
2015-09-04 20:43:00 +00:00
Davide Italiano
4410b22cea
[llvm-readobj] Dump MachO indirect symbols.
...
Example output:
File: <stdin>
Format: Mach-O 32-bit i386
Arch: i386
AddressSize: 32bit
Indirect Symbols {
Number: 3
Symbols [
Entry {
Entry Index: 0
Symbol Index: 0x4
}
Entry {
Entry Index: 1
Symbol Index: 0x0
}
Entry {
Entry Index: 2
Symbol Index: 0x1
}
]
}
Differential Revision: http://reviews.llvm.org/D12570
llvm-svn: 246789
2015-09-03 18:10:28 +00:00
Davide Italiano
d1f099682e
[llvm-readobj] MachO: Dump segment command.
...
Example output:
File: <stdin>
Format: Mach-O arm
Arch: arm
AddressSize: 32bit
Segment {
Cmd: LC_SEGMENT
Name:
Size: 260
vmaddr: 0x0
vmsize: 0x10
fileoff: 408
filesize: 408
maxprot: rwx
initprot: rwx
nsects: 3
flags: 0x0
}
Differential Revision: http://reviews.llvm.org/D12542
llvm-svn: 246665
2015-09-02 16:24:24 +00:00
Rafael Espindola
7d250f773f
Pass a symbol table to getRelocationSymbol instead of returning one.
...
This removes a report_fatal_error from library and avoids checking a
section property for every section entry.
llvm-svn: 246656
2015-09-02 15:07:39 +00:00
Davide Italiano
0ca250853c
[llvm-readobj] MachO -- correctly dump section field 'Reserved3'
...
Before we incorrectly ignored it.
llvm-svn: 246556
2015-09-01 16:29:02 +00:00
Davide Italiano
35eebe13fc
[llvm-readobj] Dump MachO Dysymtab command.
...
Example output:
File: <stdin>
Format: Mach-O 64-bit x86-64
Arch: x86_64
AddressSize: 64bit
Dysymtab {
ilocalsym: 0
nlocalsym: 6
iextdefsym: 6
nextdefsym: 2
iundefsym: 8
nundefsym: 0
tocoff: 0
ntoc: 0
modtaboff: 0
nmodtab: 0
extrefsymoff: 0
nextrefsyms: 0
indirectsymoff: 0
nindirectsyms: 0
extreloff: 0
nextrel: 0
locreloff: 0
nlocrel: 0
}
Differential Revision: http://reviews.llvm.org/D12496
llvm-svn: 246474
2015-08-31 19:32:31 +00:00
Davide Italiano
1e12fc44f4
[llvm-readobj] Add pair of missing braces.
...
This fixes a regression introduced in r246151.
llvm-svn: 246453
2015-08-31 17:12:23 +00:00
Rui Ueyama
932108912d
llvm-readobj: Dump more info for COFF import libraries.
...
This patch teaches llvm-readobj to print out COFF import file header fields.
llvm-svn: 246291
2015-08-28 10:27:50 +00:00
Rui Ueyama
71ba9bdd23
Re-apply r246276 - Object: Teach llvm-ar to create symbol table for COFF short import files
...
This patch includes a fix for a llvm-readobj test. With this patch,
the tool does no longer print out COFF headers for the short import
file, but that's probably desirable because the header for the short
import file is dummy.
llvm-svn: 246283
2015-08-28 07:40:30 +00:00
Davide Italiano
976f4da09d
[llvm-readobj] Add support for dumping MachO min version load command.
...
Example output:
File: <stdin>
Format: Mach-O arm
Arch: arm
AddressSize: 32bit
MinVersion {
Cmd: LC_VERSION_MIN_IPHONEOS
Size: 16
Version: 99.8.7
SDK: n/a
}
Differential Revision: http://reviews.llvm.org/D12373
llvm-svn: 246151
2015-08-27 15:11:32 +00:00
Davide Italiano
5e3f9ff87d
[llvm-readobj/ELF] Factor out common code.
...
llvm-svn: 245813
2015-08-23 14:06:40 +00:00
Davide Italiano
07e7acb635
[llvm-readobj] Add support for MachO DataInCodeDataCommand.
...
Example output:
File: <stdin>
Format: Mach-O arm
Arch: arm
AddressSize: 32bit
DataInCode {
Data offset: 300
Data size: 32
Data Regions [
DICE {
Index: 0
Offset: 0
Length: 4
Kind: 1
}
DICE {
Index: 1
Offset: 4
Length: 4
Kind: 4
}
DICE {
Index: 2
Offset: 8
Length: 2
Kind: 3
}
DICE {
Index: 3
Offset: 10
Length: 1
Kind: 2
}
]
}
Differential Revision: http://reviews.llvm.org/D12084
llvm-svn: 245732
2015-08-21 20:28:30 +00:00
Rafael Espindola
aae5541455
Don't iterate over all sections in the ELFFile constructor.
...
With this we finally have an ELFFile that is O(1) to construct. This is helpful
for programs like lld which have to do their own section walk.
llvm-svn: 244510
2015-08-10 21:29:35 +00:00
Rafael Espindola
821a64c7f3
Delete getDotSymtabSec.
...
Another step in avoiding iterating over all sections in the ELFFile constructor.
llvm-svn: 244496
2015-08-10 20:25:04 +00:00
Rafael Espindola
fc2b6fa31c
Use continue to reduce indentation. NFC.
...
llvm-svn: 244480
2015-08-10 18:57:42 +00:00
Rafael Espindola
8bab889b0f
Convert getSymbolSection to return an ErrorOr.
...
This function can actually fail since the symbol contains an index to the
section and that can be invalid.
llvm-svn: 244375
2015-08-07 23:27:14 +00:00
Rafael Espindola
ee0b2b5c2b
Don't look for a SHT_DYNSYM in the ELFFile's constructor.
...
Yet another step in not having it scan every section.
llvm-svn: 244353
2015-08-07 20:11:08 +00:00
Rafael Espindola
4001998455
Remove the symbol iteration functions that don't take a symbol table.
...
Another step in making ELFFile's constructor not iterate over all sections.
llvm-svn: 244351
2015-08-07 20:07:27 +00:00
Rafael Espindola
e01f43bcc1
Add dynamic_table iterators back to ELF.h.
...
In tree they are only used by llvm-readobj, but it is also used by
https://github.com/mono/CppSharp .
While at it, add some missing error checking.
llvm-svn: 244320
2015-08-07 15:25:20 +00:00
Tom Stellard
f594fcad73
ELF: Add AMDGPU specific defintions
...
Reviewers: rafael
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D11458
llvm-svn: 244303
2015-08-07 01:35:24 +00:00
Davide Italiano
db8803b05a
[llvm-readobj] Convert to range-loops.
...
llvm-svn: 244300
2015-08-07 00:35:28 +00:00
Rafael Espindola
8b3b09fdcf
Move to llvm-readobj code that is only used there.
...
lld might end up using a small part of this, but it will be in a much
refactored form. For now this unblocks avoiding the full section scan in the
ELFFile constructor.
This also has a (very small) error handling improvement.
llvm-svn: 244282
2015-08-06 21:54:37 +00:00
Simon Atanasyan
3644ee4aa8
[Mips] Support DT_MIPS_RLD_MAP_REL dynamic section tag in the llvm-readobj
...
llvm-svn: 243833
2015-08-01 12:02:02 +00:00
David Majnemer
d323888e54
[COFF] Add IMAGE_SCN_TYPE_NOLOAD to SectionCharacteristics
...
llvm-svn: 243658
2015-07-30 16:47:56 +00:00
Davide Italiano
cd1b6dbcad
[llvm-reaobj] Display COFF-specific sections/tables only if the object is COFF.
...
Just skip them otherwise.
llvm-svn: 243086
2015-07-24 02:14:20 +00:00
Rafael Espindola
b82657d3f1
Support printing relocations in files with no section table.
...
llvm-svn: 242998
2015-07-23 09:11:05 +00:00
Rafael Espindola
ead6e0d4d0
Use typdef to simplify the code. NFC.
...
llvm-svn: 242995
2015-07-23 08:48:14 +00:00
Rafael Espindola
322deb911e
Delete ELFEntityIterator. NFC.
...
llvm-svn: 242901
2015-07-22 14:09:20 +00:00
Rafael Espindola
bbfd90fca4
Don't iterate over the program headers in the constructor of ELFFile.
...
Not every program needs this information.
In particular, it is necessary and sufficient for a static linker to scan the
section table.
llvm-svn: 242833
2015-07-21 20:50:53 +00:00
Rafael Espindola
3a0b1dc800
Make printValue a member function.
...
We were already passing 3 values it can get from ELFDumper.
llvm-svn: 242829
2015-07-21 19:57:43 +00:00
Rafael Espindola
c7b0ee2c87
Remove always null argument.
...
llvm-svn: 242828
2015-07-21 19:38:32 +00:00
Rafael Espindola
8e54b3eee2
Replace the last uses of ELF::getSymbolName in llvm-readobj.
...
llvm-svn: 242798
2015-07-21 16:26:21 +00:00
Rafael Espindola
5ab87a3b19
Use helper function. NFC.
...
llvm-svn: 242795
2015-07-21 16:05:53 +00:00
Rafael Espindola
8d6b63c39e
llvm-readobj: use the associated string table to print symbols. NFI.
...
This just removes some cases that require ELFFile to eagerly parse the ELF
file.
llvm-svn: 242794
2015-07-21 16:02:10 +00:00
Rafael Espindola
33e746f21b
Simplify printing the soname. NFC.
...
llvm-svn: 242786
2015-07-21 13:48:41 +00:00
Rafael Espindola
fbb86b2350
Add missing c++ marker to .h file.
...
llvm-svn: 242784
2015-07-21 13:42:38 +00:00
Rafael Espindola
aa62fc093c
Remove duplicated code.
...
Both ELFObjectFile and ELFFile had an implementation of getLoadName.
llvm-svn: 242725
2015-07-20 22:41:44 +00:00
Rafael Espindola
e3f7223778
Simplify now that we can iterate backwards. NFC.
...
llvm-svn: 242715
2015-07-20 21:45:56 +00:00
Rafael Espindola
33f250931c
Remove Elf_Rela_Iter and Elf_Rel_Iter.
...
Use just the pointers and check for invalid relocation sections.
llvm-svn: 242700
2015-07-20 20:07:50 +00:00
Rafael Espindola
073624bb56
Simplify iterating over program headers and detect corrupt ones.
...
We now use a simple pointer and have range loops.
llvm-svn: 242669
2015-07-20 13:35:33 +00:00
Rafael Espindola
00ddb1416d
llvm-readobj: Handle invalid references to the string table.
...
llvm-svn: 242658
2015-07-20 03:38:17 +00:00
Rafael Espindola
fb3acd6216
llvm-readobj: call exit(1) on error.
...
llvm-readobj exists for testing llvm. We can safely stop the program
the first time we know the input in corrupted.
This is in preparation for making it handle a few more broken files.
llvm-svn: 242656
2015-07-20 03:23:55 +00:00
Rafael Espindola
724d4b43f4
Refactor duplicated code. NFC.
...
llvm-svn: 242655
2015-07-20 03:01:49 +00:00
Michael J. Spencer
20546ffd4a
[Object][ELF] Support dumping hash-tables from files with no section table.
...
This time without breaking the bots.
llvm-svn: 241869
2015-07-09 22:32:24 +00:00