| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 201108
|
|
|
|
|
|
|
|
|
|
| |
It is not clear how much we should try to expose in getFlags. For example,
should there be a SF_Object and a SF_Text?
But for information that is already being exposed, we may as well use it in
llvm-nm.
llvm-svn: 200820
|
|
|
|
| |
llvm-svn: 200800
|
|
|
|
|
|
|
| |
None of the object formats require extra parsing to compute these flags,
so the method cannot fail.
llvm-svn: 200574
|
|
|
|
|
|
|
|
|
| |
COFF has only one symbol table.
MachO has a LC_DYSYMTAB, but that is not a symbol table, just extra info about
the one symbol table (LC_SYMTAB).
IR (coming soon) also has only one table.
llvm-svn: 200488
|
|
|
|
|
|
|
|
|
|
|
|
| |
None of the object file formats reported error on iterator increment. In
retrospect, that is not too surprising: no object format stores symbols or
sections in a linked list or other structure that requires chasing pointers.
As a consequence, all error checking can be done on begin() and end().
This reduces the text segment of bin/llvm-readobj in my machine from 521233 to
518526 bytes.
llvm-svn: 200442
|
|
|
|
|
|
|
| |
This will be better with c++11, but right now file_magic converts to bool,
which makes the api really easy to misuse.
llvm-svn: 200357
|
|
|
|
|
|
|
|
|
|
|
|
| |
PE32+ supports 64 bit address space, but the file format remains 32 bit.
So its file format is pretty similar to PE32 (32 bit executable). The
differences compared to PE32 are (1) the lack of "BaseOfData" field and
(2) some of its data members are 64 bit.
In this patch, I added a new member function to get a PE32+ Header object to
COFFObjectFile class and made llvm-readobj to use it.
llvm-svn: 200117
|
|
|
|
| |
llvm-svn: 200112
|
|
|
|
|
|
| |
This allows llvm-ar to mmap the input files only once.
llvm-svn: 200040
|
|
|
|
|
|
|
| |
identify_magic is not free, so we should avoid calling it twice. The argument
also makes it cheap for createBinary to just forward to createObjectFile.
llvm-svn: 199813
|
|
|
|
| |
llvm-svn: 199776
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The constructors of classes deriving from Binary normally take an error_code
as an argument to the constructor. My original intent was to change them
to have a trivial constructor and move the initial parsing logic to a static
method returning an ErrorOr. I changed my mind because:
* A constructor with an error_code out parameter is extremely convenient from
the implementation side. We can incrementally construct the object and give
up when we find an error.
* It is very efficient when constructing on the stack or when there is no
error. The only inefficient case is where heap allocating and an error is
found (we have to free the memory).
The result is that this is a much smaller patch. It just standardizes the
create* helpers to return an ErrorOr.
Almost no functionality change: The only difference is that this found that
we were trying to read past the end of COFF import library but ignoring the
error.
llvm-svn: 199770
|
|
|
|
| |
llvm-svn: 199751
|
|
|
|
| |
llvm-svn: 199519
|
|
|
|
| |
llvm-svn: 199518
|
|
|
|
| |
llvm-svn: 199422
|
|
|
|
| |
llvm-svn: 199419
|
|
|
|
| |
llvm-svn: 199418
|
|
|
|
| |
llvm-svn: 199417
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds the capability to dump export table contents. An example
output is this:
Export Table:
Ordinal RVA Name
5 0x2008 exportfn1
6 0x2010 exportfn2
By adding this feature to llvm-objdump, we will be able to use it to check
export table contents in LLD's tests. Currently we are doing binary
comparison in the tests, which is fragile and not readable to humans.
llvm-svn: 199358
|
|
|
|
|
|
|
|
|
| |
DataRefImpl (a union of two integers and a pointer) is not the ideal data type
to represent a reference to an import directory entity. We should just use the
pointer to the import table and an offset instead to simplify. No functionality
change.
llvm-svn: 199349
|
|
|
|
|
|
|
|
| |
I did write a version returning ErrorOr<OwningPtr<Binary> >, but it is too
cumbersome to use without std::move. I will keep the patch locally and submit
when we switch to c++11.
llvm-svn: 199326
|
|
|
|
|
|
|
|
|
|
| |
subsequent changes are easier to review. About to fix some layering
issues, and wanted to separate out the necessary churn.
Also comment and sink the include of "Windows.h" in three .inc files to
match the usage in Memory.inc.
llvm-svn: 198685
|
|
|
|
| |
llvm-svn: 197685
|
|
|
|
|
|
| |
Patch by Marius Wachtler.
llvm-svn: 196560
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Make identify_magic to recognize COFF import file.
Reviewers: Bigcheese
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2165
llvm-svn: 194852
|
|
|
|
|
|
|
|
| |
0xffff does not mean that there are 65535 sections in a COFF file but
indicates that it's a COFF import library. This patch fixes SEGV error
when an import library file is passed to llvm-readobj.
llvm-svn: 194844
|
|
|
|
| |
llvm-svn: 193992
|
|
|
|
| |
llvm-svn: 193933
|
|
|
|
| |
llvm-svn: 193932
|
|
|
|
|
|
| |
This is a fixed version of 193928 which keeps these uses in sync.
llvm-svn: 193931
|
|
|
|
|
|
|
|
|
|
| |
COFFObjectFile::getSymbolFileOffset."
Investigating a bot failure.
This reverts commit r193928.
llvm-svn: 193929
|
|
|
|
|
|
| |
COFFObjectFile::getSymbolFileOffset.
llvm-svn: 193928
|
|
|
|
|
|
|
| |
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.
llvm-svn: 193912
|
|
|
|
| |
llvm-svn: 193623
|
|
|
|
| |
llvm-svn: 193247
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some background: One can pass compiled resource files (.res files) directly
to the linker on Windows. If a resource file is given, the linker will run
"cvtres" command in background to convert the resource file to a COFF file
to link it.
What I'm trying to do with this patch is to make the linker to recognize
the resource file by file magic, so that it can run cvtres command.
Differential Revision: http://llvm-reviews.chandlerc.com/D1943
llvm-svn: 192742
|
|
|
|
| |
llvm-svn: 192519
|
|
|
|
|
|
|
| |
It is mentioned in the LLVM coding standard that _begin() and _end() suffixes
should be used.
llvm-svn: 191569
|
|
|
|
|
| |
llvm-objdump: Dump COFF import table if -private-headers option is given.
llvm-svn: 191557
|
|
|
|
|
|
|
|
| |
given."
This reverts commit r191472 because it's failing on BE machine.
llvm-svn: 191480
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a patch to add capability to llvm-objdump to dump COFF Import Table
entries, so that we can write tests for LLD checking Import Table contents.
llvm-objdump did not print anything but just file name if the format is COFF
and -private-headers option is given. This is a patch adds capability for
dumping DLL Import Table, which is specific to the COFF format.
In this patch I defined a new iterator to iterate over import table entries.
Also added a few functions to COFFObjectFile.cpp to access fields of the entry.
Differential Revision: http://llvm-reviews.chandlerc.com/D1719
llvm-svn: 191472
|
|
|
|
| |
llvm-svn: 190769
|
|
|
|
| |
llvm-svn: 189728
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 189321
|
|
|
|
| |
llvm-svn: 189315
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 189314
|
|
|
|
| |
llvm-svn: 188852
|
|
|
|
| |
llvm-svn: 188064
|