| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The bitcode format is described in this document:
https://drive.google.com/file/d/0B036uwnWM6RWdnBLakxmeDdOeXc/view
For more info on ThinLTO see:
https://sites.google.com/site/llvmthinlto
The first customer is ThinLTO, however the data structures are designed
and named more generally based on prior feedback. There are a few
comments regarding how certain interfaces are used by ThinLTO, and the
options added here to gold currently have ThinLTO-specific names as the
behavior they provoke is currently ThinLTO-specific.
This patch includes support for generating per-module function indexes,
the combined index file via the gold plugin, and several tests
(more are included with the associated clang patch D11908).
Reviewers: dexonsmith, davidxl, joker.eph
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D13107
llvm-svn: 249270
|
| |
|
|
| |
llvm-svn: 248265
|
| |
|
|
| |
llvm-svn: 248264
|
| |
|
|
| |
llvm-svn: 248263
|
| |
|
|
| |
llvm-svn: 248262
|
| |
|
|
| |
llvm-svn: 248261
|
| |
|
|
|
|
| |
extra times. NFC
llvm-svn: 248140
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
short import files
This change caused a test for llvm-readobj to fail.
llvm-svn: 246277
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
COFF short import files are special kind of files that contains only
DLL-exported symbol names. That's different from object files because
it has no data except symbol names.
This change implements a SymbolicFile interface for the short import
files so that symbol names can be accessed through that interface.
llvm-ar is now able to read the file and create symbol table entries
for short import files.
llvm-svn: 246276
|
| |
|
|
|
|
| |
Requested by: Jim Grosbach.
llvm-svn: 245963
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
While introducing support for MinVersionLoadCommand in llvm-readobj I noticed there's
no API to extract Major/Minor/Update components conveniently. Currently consumers
do the bit twiddling on their own, but this will change from now on.
I'll convert llvm-objdump (and llvm-readobj) in a later commit.
Differential Revision: http://reviews.llvm.org/D12282
Reviewed by: rafael
llvm-svn: 245938
|
| |
|
|
|
|
|
| |
This function can actually fail since the symbol contains an index to the
section and that can be invalid.
llvm-svn: 244375
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
| |
The COFFSymbolRef::isFunctionDefinition() function tests for several conditions
that are not related to whether a symbol is a function, but rather whether
the symbol meets the requirements for a function definition auxiliary record,
which excludes certain symbols such as internal functions and undefined
references. The test we need to determine the symbol type is much simpler:
we only need to compare the complex type against IMAGE_SYM_DTYPE_FUNCTION.
llvm-svn: 244195
|
| |
|
|
| |
llvm-svn: 243863
|
| |
|
|
|
|
| |
This lets us reenable the lld test disabled in r243758.
llvm-svn: 243761
|
| |
|
|
|
|
|
|
| |
This makes llvm-nm consistent with binutils nm on executables and DLLs.
For a vanilla hello world executable, the address of main should include
the default image base of 0x400000.
llvm-svn: 243755
|
| |
|
|
|
|
|
|
| |
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D11263
llvm-svn: 243724
|
| |
|
|
| |
llvm-svn: 243658
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Object: add IMAGE_FILE_MACHINE_ARM64
The official specifications state that the value of IMAGE_FILE_MACHINE_ARM64
is 0xAA64 (as per the Microsoft Portable Executable and Common Object Format
Specification v8.3).
Reviewers: rnk
Subscribers: llvm-commits, compnerd, ruiu
Differential Revision: http://reviews.llvm.org/D11511
llvm-svn: 243434
|
| |
|
|
|
|
| |
We were trying to read it as an external file.
llvm-svn: 242926
|
| |
|
|
|
|
| |
The member has to end up with a path relative to the archive.
llvm-svn: 242362
|
| |
|
|
|
|
|
| |
We were already doing the right thing for short file names, but not long
ones.
llvm-svn: 242354
|
| |
|
|
| |
llvm-svn: 242348
|
| |
|
|
|
|
|
| |
We were storing both the path and the file name, which was redundant
and easy to get confused up with.
llvm-svn: 242347
|
| |
|
|
| |
llvm-svn: 242334
|
| |
|
|
|
|
| |
While at it, test that we can add to a thin archive.
llvm-svn: 242330
|
| |
|
|
| |
llvm-svn: 242269
|
| |
|
|
| |
llvm-svn: 242250
|
| |
|
|
|
|
|
|
|
|
| |
For now the Archive owns the buffers of the thin archive members.
This makes for a simple API, but all the buffers are destructed
only when the archive is destructed. This should be fine since we
close the files after mmap so we should not hit an open file
limit.
llvm-svn: 242215
|
| |
|
|
| |
llvm-svn: 242100
|
| |
|
|
|
|
| |
This is important for thin archives.
llvm-svn: 242082
|
| |
|
|
| |
llvm-svn: 242061
|
| |
|
|
|
|
|
| |
It looks like ld64 requires it. With this we seem to be able to bootstrap using
llvm-ar+/usr/bin/true instead of ar+ranlib (currently on stage2).
llvm-svn: 241842
|
| |
|
|
|
|
|
| |
This could be optimized and for now we only produce __.SYMDEF
and not "__.SYMDEF SORTED".
llvm-svn: 241814
|
| |
|
|
| |
llvm-svn: 241810
|
| |
|
|
|
|
|
| |
The gnu ar format uses BE numbers. The BSD one uses LE. Add a helper for one or the
other. NFC for now, just removes some noise from the following patch.
llvm-svn: 241808
|
| |
|
|
|
|
|
| |
It will get another use in the following patch. Also rename the other helper to
printGNUSmallMemberHeader for consistency.
llvm-svn: 241805
|
| |
|
|
|
|
| |
It is pretty unambiguous how to interpret it and gnu ar accepts it too.
llvm-svn: 241750
|
| |
|
|
|
|
| |
NFC, just less error prone.
llvm-svn: 241747
|
| |
|
|
| |
llvm-svn: 241727
|
| |
|
|
|
|
|
|
| |
No support for the symbol table yet (but will hopefully add it today).
We always use the long filename format so that we can align the member,
which is an advantage of the BSD format.
llvm-svn: 241721
|
| |
|
|
| |
llvm-svn: 241692
|
| |
|
|
| |
llvm-svn: 241691
|
| |
|
|
| |
llvm-svn: 241685
|
| |
|
|
|
|
|
|
|
|
|
| |
getSymbolValue now returns a value that in convenient for most callers:
* 0 for undefined
* symbol size for common symbols
* offset/address for symbols the rest
Code that needs something more specific can check getSymbolFlags.
llvm-svn: 241605
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
At least not in the interface exposed by ObjectFile. This matches what ELF and
COFF implement.
Adjust existing code that was expecting them to have values. No overall
functionality change intended.
Another option would be to change the interface and the ELF and COFF
implementations to say that the value of a common symbol is its size.
llvm-svn: 241593
|
| |
|
|
|
|
|
|
|
| |
They are implemented like that in some object formats, but for the interface
provided by lib/Object, SF_Undefined and SF_Common are different things.
This matches the ELF and COFF implementation and fixes llvm-nm for MachO.
llvm-svn: 241587
|
| |
|
|
|
|
|
|
| |
In these two contexts we really just want the raw n_value. No need to use
getSymbolValue which checks for special cases where, semantically, the symbol
has no value.
llvm-svn: 241584
|