- Aug 09, 2013
-
-
Rui Ueyama authored
__ImageBase is a symbol having 4 byte integer equal to the image base address of the resultant executable. The linker is expected to create the symbol as if it were read from a file. In order to emit the symbol contents only when the symbol is actually referenced, we created a pseudo library file to wrap the linker generated symbol. The library file member is emitted to the output only when the member is actually referenced, which is suitable for our purpose. llvm-svn: 188052
-
Rui Ueyama authored
The COMDAT section is a section with a special attribute to tell the linker whether the symbols in the section are allowed to be merged or not. This patch add a function to interpret the COMDAT data and set "merge" attribute to the atoms accordingly. LLD supports multiple policies to merge atoms; atoms can be merged by name or by content. COFF supports them, and in addition to that, it supports choose-the-largest-atom policy, which LLD currently does not support. I simply mapped it to merge-by-name attribute for now, but we eventually have to support that policy in the core linker. llvm-svn: 188025
-
Michael J. Spencer authored
llvm-svn: 188021
-
- Aug 08, 2013
-
-
Rui Ueyama authored
llvm-svn: 188011
-
- Aug 02, 2013
-
-
Rui Ueyama authored
Summary: The .drectve section contains linker command line options, and the linker is expected to interpret them as if they were given via the command line. In this patch, the command line parser in the driver is called from the object file reader to parse the string. I think this patch is important, because this is the first step towards mutable TargetInfo. We had a discussion about that on llvm-commits mailing list before. I haven't removed "const" from the function signature yet. Instead, I just use cast to remove "const". This is a temporary aid for an experiment. If we don't see any issue with this mutable TargetInfo appraoch, I'll change the function signature, and rename the class LinkerContext from TargetInfo. Reviewers: kledzik CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1246 llvm-svn: 187677
-
Rui Ueyama authored
Patch by Ron Ofir. llvm-svn: 187664
-
Rui Ueyama authored
llvm-svn: 187645
-
- Jul 31, 2013
-
-
Rui Ueyama authored
llvm-svn: 187460
-
- Jul 30, 2013
-
-
Rui Ueyama authored
This patch removes hacky mangle() function, which strips all decorations uncondtitionally. LLD now interprets Import Name/Type field in the import library properly as described in the Microsoft PE/COFF Spec. llvm-svn: 187388
-
- Jul 29, 2013
-
-
Rui Ueyama authored
llvm-svn: 187381
-
- Jul 27, 2013
-
-
Rui Ueyama authored
Some sections, such as with IMAGE_SCN_LNK_REMOVE attribute, is skipped in the first pass. Such sections need to be skipped in the latter passes. llvm-svn: 187281
-
- Jul 26, 2013
-
-
Rui Ueyama authored
Based on Ron Ofir's patch. llvm-svn: 187221
-
Reid Kleckner authored
llvm-svn: 187170
-
Reid Kleckner authored
llvm-svn: 187165
-
- Jul 25, 2013
-
-
Rui Ueyama authored
llvm-svn: 187100
-
Rui Ueyama authored
LLD still accepts both Unix and Windows style options when it's run as link.exe. This patch does not change functionality. llvm-svn: 187086
-
Rui Ueyama authored
The /include command line option is equivalent to Unix --undefined option, which forces the linker to resolve the given symbol name as if it's an unresolved symbol in one of its input files. This feature is used to link an additional object file or a shared library that no input files refer to. llvm-svn: 187084
-
- Jul 24, 2013
-
-
Nick Kledzik authored
llvm-svn: 187005
-
- Jul 23, 2013
-
-
Rui Ueyama authored
llvm-svn: 186911
-
- Jul 20, 2013
-
-
Rui Ueyama authored
llvm-svn: 186739
-
- Jul 19, 2013
-
-
Rui Ueyama authored
llvm-svn: 186654
-
Rui Ueyama authored
llvm-svn: 186650
-
Rui Ueyama authored
llvm-svn: 186648
-
Rui Ueyama authored
llvm-svn: 186645
-
- Jul 16, 2013
-
-
Nick Kledzik authored
llvm-svn: 186441
-
- Jul 15, 2013
-
-
Rui Ueyama authored
Emit .reloc section. This is the first step to support DLL creation. The executable doesn't need .reloc section, but the DLL does. Reviewers: Bigcheese CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1126 llvm-svn: 186336
-
- Jul 11, 2013
-
-
Rui Ueyama authored
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
-
Rui Ueyama authored
llvm-svn: 186066
-
- Jul 05, 2013
-
-
Rui Ueyama authored
llvm-svn: 185690
-
- Jul 04, 2013
-
-
Rafael Espindola authored
llvm-svn: 185658
-
Rafael Espindola authored
llvm-svn: 185655
-
Rui Ueyama authored
This is a follow-up patch for r185524. Being assert enabled does not mean that DEBUG() is enabled, so we need to check the existence of DEBUG() itself. llvm-svn: 185619
-
- Jul 03, 2013
-
-
Rui Ueyama authored
llvm-svn: 185534
-
Rui Ueyama authored
llvm-svn: 185524
-
- Jul 01, 2013
-
-
Rui Ueyama authored
llvm-svn: 185310
-
Rui Ueyama authored
llvm-svn: 185308
-
- Jun 30, 2013
-
-
Rui Ueyama authored
llvm-svn: 185283
-
- Jun 28, 2013
-
-
Rui Ueyama authored
llvm-svn: 185205
-
Rui Ueyama authored
llvm-svn: 185133
-
Rui Ueyama authored
llvm-svn: 185130
-