| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Mach-O AArch64 linker optimization hints for ADRP code optimization.
llvm-svn: 227246
|
|
|
|
| |
llvm-svn: 226229
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
accesses while reading MachO files.
Summary:
Shift an older “invalid file” test to get a consistent naming for these tests.
Bugs found by afl-fuzz
Reviewers: rafael
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D6945
llvm-svn: 226219
|
|
|
|
|
|
|
|
|
| |
be exported from a dylib if their containing object file were linked into one.
No test case: No command line tools query this flag, and there are no Object
unit tests.
llvm-svn: 226217
|
|
|
|
| |
llvm-svn: 225271
|
|
|
|
| |
llvm-svn: 224792
|
|
|
|
|
|
| |
-private-headers.
llvm-svn: 224627
|
|
|
|
|
|
| |
-private-headers.
llvm-svn: 224616
|
|
|
|
|
|
| |
-private-headers.
llvm-svn: 224607
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: This fixes the exports iterator if the export list is empty.
Reviewers: Bigcheese, kledzik
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D6732
llvm-svn: 224563
|
|
|
|
|
|
| |
-private-headers.
llvm-svn: 224548
|
|
|
|
|
|
| |
-private-headers.
llvm-svn: 224534
|
|
|
|
|
|
|
|
|
|
| |
-private-headers.
Also corrected the name of the load command to not end in an ’S’ as well as corrected
the name of the MachO::linker_option_command struct and other places that had the
word option as plural which did not match the Mac OS X headers.
llvm-svn: 224485
|
|
|
|
|
|
|
|
| |
-private-headers
and add tests for the two AArch64 binaries.
llvm-svn: 224400
|
|
|
|
|
|
| |
-private-headers.
llvm-svn: 224390
|
|
|
|
|
|
|
|
| |
These methods are only used by MCJIT and are very specific to it. In fact, they
are also fairly specific to the fact that we have a dynamic linker of
relocatable objects.
llvm-svn: 223964
|
|
|
|
|
|
|
|
|
|
| |
Summary: Add rpath load command support in Mach-O object and update llvm-objdump to use it.
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D6512
llvm-svn: 223343
|
|
|
|
|
|
|
| |
Don't assert if we can return an error code, reuse existing
functionality like is64Bit().
llvm-svn: 221915
|
|
|
|
|
|
|
|
| |
a public version MachOObjectFile::getScatteredRelocationType().
This should fix the build bot for the unused function error.
llvm-svn: 221216
|
|
|
|
|
|
| |
symbolizer.
llvm-svn: 221211
|
|
|
|
| |
llvm-svn: 220668
|
|
|
|
|
|
|
|
|
| |
a dangling ArrayRef.
This works because uuid's are always little endian so it's not swapped.
Fixes use-after-return reported by asan.
llvm-svn: 220567
|
|
|
|
|
|
|
| |
This prints disassembly comments for Objective-C references to CFStrings,
Selectors, Classes and method calls.
llvm-svn: 220500
|
|
|
|
|
|
| |
(See e.g. http://bb.pgr.jp/builders/cmake-llvm-x86_64-linux/builds/17653)
llvm-svn: 220249
|
|
|
|
|
|
|
|
| |
symbol table.
Patch by Anthony Pesch. Thanks Anthony!
llvm-svn: 220245
|
|
|
|
| |
llvm-svn: 220119
|
|
|
|
|
|
|
| |
This CL introduces MachOObjectFile::getUuid(). This function returns an ArrayRef to the object file's UUID, or an empty ArrayRef if the object file doesn't contain an LC_UUID load command.
The new function is gonna be used by llvm-symbolizer.
llvm-svn: 219866
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are two methods in SectionRef that can fail:
* getName: The index into the string table can be invalid.
* getContents: The section might point to invalid contents.
Every other method will always succeed and returning and std::error_code just
complicates the code. For example, a section can have an invalid alignment,
but if we are able to get to the section structure at all and create a
SectionRef, we will always be able to read that invalid alignment.
llvm-svn: 219314
|
|
|
|
| |
llvm-svn: 217935
|
|
|
|
|
|
| |
getLibraryShortNameByIndex() error handling.
llvm-svn: 217930
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This finishes the ability of llvm-objdump to print out all information from
the LC_DYLD_INFO load command.
The -bind option prints out symbolic references that dyld must resolve
immediately.
The -lazy-bind option prints out symbolc reference that are lazily resolved on
first use.
The -weak-bind option prints out information about symbols which dyld must
try to coalesce across images.
llvm-svn: 217853
|
|
|
|
|
|
|
|
|
|
| |
Similar to my previous -exports-trie option, the -rebase option dumps info from
the LC_DYLD_INFO load command. The rebasing info is a list of the the locations
that dyld needs to adjust if a mach-o image is not loaded at its preferred
address. Since ASLR is now the default, images almost never load at their
preferred address, and thus need to be rebased by dyld.
llvm-svn: 217709
|
|
|
|
|
|
|
|
|
| |
executable Mach-O files.
This adds the printing of more load commands, so that the normal load commands
in a typical X86 Mach-O executable can all be printed.
llvm-svn: 217172
|
|
|
|
| |
llvm-svn: 216931
|
|
|
|
| |
llvm-svn: 216809
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MachOObjectFile in lib/Object currently has no support for parsing the rebase,
binding, and export information from the LC_DYLD_INFO load command in final
linked mach-o images. This patch adds support for parsing the exports trie data
structure. It also adds an option to llvm-objdump to dump that export info.
I did the exports parsing first because it is the hardest. The information is
encoded in a trie structure, but the standard ObjectFile way to inspect content
is through iterators. So I needed to make an iterator that would do a
non-recursive walk through the trie and maintain the concatenation of edges
needed for the current string prefix.
I plan to add similar support in MachOObjectFile and llvm-objdump to
parse/display the rebasing and binding info too.
llvm-svn: 216808
|
|
|
|
|
|
| |
just letting them be implicitly created.
llvm-svn: 216525
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Owning the buffer is somewhat inflexible. Some Binaries have sub Binaries
(like Archive) and we had to create dummy buffers just to handle that. It is
also a bad fit for IRObjectFile where the Module wants to own the buffer too.
Keeping this ownership would make supporting IR inside native objects
particularly painful.
This patch focuses in lib/Object. If something elsewhere used to own an Binary,
now it also owns a MemoryBuffer.
This patch introduces a few new types.
* MemoryBufferRef. This is just a pair of StringRefs for the data and name.
This is to MemoryBuffer as StringRef is to std::string.
* OwningBinary. A combination of Binary and a MemoryBuffer. This is needed
for convenience functions that take a filename and return both the
buffer and the Binary using that buffer.
The C api now uses OwningBinary to avoid any change in semantics. I will start
a new thread to see if we want to change it and how.
llvm-svn: 216002
|
|
|
|
|
|
|
|
|
|
| |
file with -macho, the Mach-O specific object file parser option.
After some discussion I chose to do this implementation contained in the logic
of llvm-objdump’s MachODump.cpp using a second disassembler for thumb when
needed and with updates mostly contained in the MachOObjectFile class.
llvm-svn: 215931
|
|
|
|
|
|
| |
This matches the behavior of GNU objdump.
llvm-svn: 215844
|
|
|
|
| |
llvm-svn: 215224
|
|
|
|
| |
llvm-svn: 215219
|
|
|
|
| |
llvm-svn: 215218
|
|
|
|
| |
llvm-svn: 215216
|
|
|
|
|
|
|
|
|
| |
MachOObjectFile::getArch(uint32_t CPUType, uint32_t CPUSubType) .
Upcoming changes will cause existing test cases to use this but
I wanted to check in this obvious change separately.
llvm-svn: 215150
|
|
|
|
| |
llvm-svn: 214377
|
|
|
|
|
|
|
|
|
|
|
|
| |
Having both Triple::arm64 and Triple::aarch64 is extremely confusing, and
invites bugs where only one is checked. In reality, the only legitimate
difference between the two (arm64 usually means iOS) is also present in the OS
part of the triple and that's what should be checked.
We still parse the "arm64" triple, just canonicalise it to Triple::aarch64, so
there aren't any LLVM-side test changes.
llvm-svn: 213743
|
|
|
|
| |
llvm-svn: 213478
|
|
|
|
| |
llvm-svn: 213361
|
|
|
|
|
|
|
|
| |
The registration scheme used in r211652 violated the read-only contract of
MemoryBuffer. This caused crashes in llvm-rtdyld where macho objects were backed
by read-only mmap'd memory.
llvm-svn: 213086
|