| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
We are now able to handle big endian macho files in llvm-readobject. Thanks to
David Fang for providing the object files.
llvm-svn: 179440
|
|
|
|
|
|
| |
You can't copy an OwningPtr, and move semantics aren't available in C++98.
llvm-svn: 179374
|
|
|
|
| |
llvm-svn: 179373
|
|
|
|
| |
llvm-svn: 179363
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This option expands shown relocations from single line to a dictionary
format:
Relocation {
Offset: 0x4
Type: R_386_32 (1)
Symbol: sym
Info: 0x0
}
llvm-svn: 179359
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 179345
|
|
|
|
| |
llvm-svn: 179303
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 179294
|
|
|
|
| |
llvm-svn: 179259
|
|
|
|
| |
llvm-svn: 179179
|
|
|
|
|
|
| |
For now they are still only used as little endian.
llvm-svn: 179147
|
|
|
|
|
|
|
| |
For now it is templated only on being 64 or 32 bits. I will add little/big
endian next.
llvm-svn: 179097
|
|
|
|
| |
llvm-svn: 179051
|
|
|
|
| |
llvm-svn: 179010
|
|
|
|
| |
llvm-svn: 179009
|
|
|
|
|
|
|
|
| |
I couldn't touch this file and not clean it up some. These reformattings
brought to you by clang-format, with some minor adjustments by me. More
spring cleaning to follow here.
llvm-svn: 179004
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
internal linkage and so wasn't a patent bug, it doesn't make any sense
here. We can avoid even calling operator<< by just embedding the newline
in the string literals that were already being streamed out. It also
gives the impression of some line-ending agnosticisms which is not
present, and that flushing happens when it doesn't.
If we want to use std::endl, we could do that, but honestly it doesn't
seem remotely worth it. Using '\n' directly is much more clear when
working with raw_ostream.
It also happens to fix builds with old crufty GCC STL implementations
that include std::endl into the global namespace (or headers written to
be compatible with such atrocities).
llvm-svn: 179003
|
|
|
|
| |
llvm-svn: 178994
|
|
|
|
|
|
|
| |
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.
llvm-svn: 178991
|
|
|
|
|
|
| |
This avoids using MachOObject::getLoadCommandInfo.
llvm-svn: 178990
|
|
|
|
| |
llvm-svn: 178986
|
|
|
|
| |
llvm-svn: 178985
|
|
|
|
| |
llvm-svn: 178984
|
|
|
|
| |
llvm-svn: 178981
|
|
|
|
| |
llvm-svn: 178980
|
|
|
|
| |
llvm-svn: 178979
|
|
|
|
| |
llvm-svn: 178977
|
|
|
|
| |
llvm-svn: 178976
|
|
|
|
| |
llvm-svn: 178904
|
|
|
|
| |
llvm-svn: 178877
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 178875
|
|
|
|
| |
llvm-svn: 178859
|
|
|
|
| |
llvm-svn: 178835
|
|
|
|
|
|
|
|
|
|
|
|
| |
On freebsd this makes sure that symbols are exported on the binaries that need
them. The net result is that we should get symbols in the binaries that need
them on every platform.
On linux x86-64 this reduces the size of the bin directory from 262MB to 250MB.
Patch by Stephen Checkoway.
llvm-svn: 178725
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ELF with support for:
- File headers
- Section headers + data
- Relocations
- Symbols
- Unwind data (only COFF/Win64)
The output format follows a few rules:
- Values are almost always output one per line (as elf-dump/coff-dump already do). - Many values are translated to something readable (like enum names), with the raw value in parentheses.
- Hex numbers are output in uppercase, prefixed with "0x".
- Flags are sorted alphabetically.
- Lists and groups are always delimited.
Example output:
---------- snip ----------
Sections [
Section {
Index: 1
Name: .text (5)
Type: SHT_PROGBITS (0x1)
Flags [ (0x6)
SHF_ALLOC (0x2)
SHF_EXECINSTR (0x4)
]
Address: 0x0
Offset: 0x40
Size: 33
Link: 0
Info: 0
AddressAlignment: 16
EntrySize: 0
Relocations [
0x6 R_386_32 .rodata.str1.1 0x0
0xB R_386_PC32 puts 0x0
0x12 R_386_32 .rodata.str1.1 0x0
0x17 R_386_PC32 puts 0x0
]
SectionData (
0000: 83EC04C7 04240000 0000E8FC FFFFFFC7 |.....$..........|
0010: 04240600 0000E8FC FFFFFF31 C083C404 |.$.........1....|
0020: C3 |.|
)
}
]
---------- snip ----------
Relocations and symbols can be output standalone or together with the section header as displayed in the example.
This feature set supports all tests in test/MC/COFF and test/MC/ELF (and I suspect all additional tests using elf-dump), making elf-dump and coff-dump deprecated.
Patch by Nico Rieck!
llvm-svn: 178679
|
|
|
|
|
|
| |
Patch by Nico Rieck!
llvm-svn: 178678
|
|
|
|
| |
llvm-svn: 178385
|
|
|
|
|
|
|
|
|
|
|
| |
that work on the LLVMBuild based dependency specification didn't
actually work, we just now maintain dependencies in *3* places instead
of 2. Yay.
There may still be some missing dependencies, I'm still sifting through
the bots and my builds, but this is a step in the right direction.
llvm-svn: 177988
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
its own library. These functions are bridging between the bitcode reader
and the ll parser which are in different libraries. Previously we didn't
have any good library to do this, and instead played fast and loose with
a "header only" set of interfaces in the Support library. This really
doesn't work well as evidenced by the recent attempt to add timing logic
to the these routines.
As part of this, make them normal functions rather than weird inline
functions, and sink the implementation into the library. Also clean up
the header to be nice and minimal.
This requires updating lots of build system dependencies to specify that
the IRReader library is needed, and several source files to not
implicitly rely upon the header file to transitively include all manner
of other headers.
If you are using IRReader.h, this commit will break you (the header
moved) and you'll need to also update your library usage to include
'irreader'. I will commit the corresponding change to Clang momentarily.
llvm-svn: 177971
|
|
|
|
|
|
| |
symbol table / dynamic symbol table
llvm-svn: 177873
|
|
|
|
| |
llvm-svn: 177410
|
|
|
|
|
|
| |
instead of .clear()
llvm-svn: 177409
|
|
|
|
| |
llvm-svn: 177390
|
|
|
|
|
|
| |
Patch by Stephen Checkoway.
llvm-svn: 177233
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
codegen passes. This brings it in to line with clang and llc's codegen setup,
and tidies up the code.
If I understand correctly, adding ModulePasses to a FunctionPassManager is
bogus. It only seems to explode if an added ModulePass depends on a
FunctionPass though, which might be why this code has survived so long.
Fixes <rdar://problem/13386816>.
llvm-svn: 176977
|
|
|
|
|
|
|
|
| |
- if you have LLDB checked out in $llvm/tools, CMake will build it now!
- LLDB is known to build on Linux with libstdc++ and GCC 4.6/4.7 or Clang 3.3
- to run lldb tests, do "make check-lldb" after a build
llvm-svn: 176307
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Consistency with opt (which supports the same option with the same meaning and
description).
- Debugging gold plugin-based linking without optimizations getting in the way.
- Debugging programs linked with the gold plugin while preserving the original
debug info.
- Fine-grained control over LTO passes using the gold plugin in combination with
opt (or clang/dragonegg).
Patch by Cristiano Giuffrida!
llvm-svn: 176257
|
|
|
|
| |
llvm-svn: 176192
|
|
|
|
|
|
| |
to NULL and use asserts to check in relevant places.
llvm-svn: 176134
|
|
|
|
| |
llvm-svn: 176123
|