| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In COFF, an undefined symbol can have up to one alternative name. If a symbol
is resolved by its regular name, then it's linked normally. If a symbol is not
found in any input files, all references to the regular name are resolved using
the alternative name. If the alternative name is not found, it's a link error.
This mechanism is called "weak externals".
To support this mechanism, I added a new member function fallback() to undefined
atom. If an undefined atom has the second name, fallback() returns a new undefined
atom that should be used instead of the original one to resolve undefines. If it
does not have the second name, the function returns nullptr.
Differential Revision: http://llvm-reviews.chandlerc.com/D1550
llvm-svn: 190625
|
| |
|
|
|
|
|
|
|
| |
attribute in LinkerInput to isWholeArchive and use that for deciding
whether library archives should be expanded. Implement the -all_load
option of the Darwin linker using this flag and drop the support for it
in GNU mode.
llvm-svn: 190275
|
| |
|
|
|
|
| |
reference. Move readFile logic into FileNode::createLinkerInput.
llvm-svn: 190253
|
| |
|
|
|
|
|
|
|
|
| |
It looks like there is a possibility of seeing RO/RW note sections
and we would need to create an appropriate RO/RW segment associated
with them.
Adds a test too.
llvm-svn: 189907
|
| |
|
|
|
|
|
|
| |
Emit note sections if the input contains a note section.
Also emit a note segment.
llvm-svn: 189896
|
| |
|
|
| |
llvm-svn: 189775
|
| |
|
|
|
|
|
|
|
|
|
|
| |
available in YAML
This adds an API to the LinkingContext for flavors to add Internal files
containing atoms that need to appear in the YAML output as well, when -emit-yaml
switch is used.
Flavors can add more internal files for other options that are needed.
llvm-svn: 189718
|
| |
|
|
| |
llvm-svn: 189413
|
| |
|
|
|
|
|
|
|
|
|
| |
typeTLV content type is used by Darwin to represent thread local
storage. A new contentType has to be made to represent ELF
thread local storage data. These have been set to
- typeThreadZeroFill (represents TBSS storage)
- typeThreadData (represents TDATA storage)
llvm-svn: 189137
|
| |
|
|
| |
llvm-svn: 188049
|
| |
|
|
|
|
|
|
|
| |
Also change some local variable names: "ti" -> "context" and
"_targetInfo" -> "_context".
Differential Revision: http://llvm-reviews.chandlerc.com/D1301
llvm-svn: 187823
|
| |
|
|
| |
llvm-svn: 186996
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds a new pass, IdataPass, to transform shared atom references
to real references and to construct the .idata section data. With this patch
lld can produce a working Hello World program by linking it against
kernel32.dll and user32.dll.
Reviewers: Bigcheese
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1096
llvm-svn: 186071
|
| |
|
|
| |
llvm-svn: 184589
|
| |
|
|
|
|
|
|
|
|
|
| |
The yaml reader is not specific to any file format. This patch moves
it to TargetInfo and makes validate a non virtual interface so that it
can be constructed from a single location.
The same method will be used to create a reader for llvm bitcode
files.
llvm-svn: 183740
|
| |
|
|
| |
llvm-svn: 182789
|
| |
|
|
|
|
| |
functionality change)
llvm-svn: 181503
|
| |
|
|
| |
llvm-svn: 181492
|
| |
|
|
| |
llvm-svn: 181473
|
| |
|
|
|
|
| |
Patch by Rui Ueyama.
llvm-svn: 180209
|
| |
|
|
|
|
|
|
|
|
|
|
| |
to the list of undefined atoms.
The processing of undefined atoms from dynamic libraries is controlled by
use-shlib-undefines command line option.
This patch also adds additional command line arguments to allow/disallow
unresolved symbols from shared libraries and mimics GNU ld behavior.
llvm-svn: 179257
|
| |
|
|
| |
llvm-svn: 178940
|
| |
|
|
| |
llvm-svn: 178918
|
| |
|
|
| |
llvm-svn: 178914
|
| |
|
|
| |
llvm-svn: 178913
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The major changes are:
1) LinkerOptions has been merged into TargetInfo
2) LinkerInvocation has been merged into Driver
3) Drivers no longer convert arguments into an intermediate (core) argument
list, but instead create a TargetInfo object and call setter methods on
it. This is only how in-process linking would work. That is, you can
programmatically set up a TargetInfo object which controls the linking.
4) Lots of tweaks to test suite to work with driver changes
5) Add the DarwinDriver
6) I heavily doxygen commented TargetInfo.h
Things to do after this patch is committed:
a) Consider renaming TargetInfo, given its new roll.
b) Consider pulling the list of input files out of TargetInfo. This will
enable in-process clients to create one TargetInfo the re-use it with
different input file lists.
c) Work out a way for Drivers to format the warnings and error done in
core linking.
llvm-svn: 178776
|
| |
|
|
|
|
|
|
|
|
| |
ArrayRef<uint8_t>::equals(); lowers to a byte compare loop :(.
TODO: Figure out if we are getting hash collisions, or just have a lot of equal
content. Also test if crypto hashing the content instead of full compare is
better.
llvm-svn: 177588
|
| |
|
|
| |
llvm-svn: 177079
|
| |
|
|
| |
llvm-svn: 176309
|
| |
|
|
| |
llvm-svn: 175983
|
| |
|
|
| |
llvm-svn: 175901
|
| |
|
|
| |
llvm-svn: 174277
|
| |
|
|
|
|
| |
canBeNullNever.
llvm-svn: 174107
|
| |
|
|
| |
llvm-svn: 173300
|
| |
|
|
|
|
| |
It owns and manages passes.
llvm-svn: 173287
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 173192
|
| |
|
|
| |
llvm-svn: 173117
|
| |
|
|
|
|
| |
constants and string literals which the linker should coalesce.
llvm-svn: 172495
|
| |
|
|
|
|
|
|
|
|
| |
Since most content types (e.g. typeCode) have a
preferred Permission, add a function to do that mapping.
Then hook up to YAML Reader and Writer such that
the 'permissions:' key does not need to be specified unless
overriding what the content type prefers.
llvm-svn: 171929
|
| |
|
|
| |
llvm-svn: 171916
|
| |
|
|
|
|
|
|
| |
and adds a new file ReaderWriterYAML.cpp that uses YAML I/O.
Lots of tweaks to test suite for slightly different YAML encoding.
llvm-svn: 171592
|
| |
|
|
| |
llvm-svn: 171531
|
| |
|
|
| |
llvm-svn: 171528
|
| |
|
|
| |
llvm-svn: 169306
|
| |
|
|
| |
llvm-svn: 167394
|
| |
|
|
|
|
| |
switch statements
llvm-svn: 158542
|
| |
|
|
|
|
|
|
| |
now Reader and Writer subclasses for each file format. Each Reader and
Writer subclass defines an "options" class which controls how that Reader
or Writer operates.
llvm-svn: 157774
|
| |
|
|
| |
llvm-svn: 157253
|
| |
|
|
| |
llvm-svn: 156143
|
| |
|
|
|
|
|
|
| |
recursive descent functions into one table driven parser. Add proper
error recovery and reporting. Add lots of test cases with semantics errors
and verify error messages.
llvm-svn: 156136
|