- Nov 26, 2013
-
-
Rui Ueyama authored
The current mapping for /section one character options is really bogus. Map to the correct flags. llvm-svn: 195774
-
- Nov 25, 2013
-
-
Shankar Easwaran authored
This adds LinkerScript support by creating a type Script which is of type FileNode in the InputGraph. Once the LinkerScript Parser converts the LinkerScript into a sequence of command, the commands are handled by the equivalent LinkerScript node for the current Flavor/Target. For ELF, a ELFGNULdScript gets created which converts the commands to ELF nodes and ELF control nodes(ELFGroup for handling Group nodes). Since the Inputfile type has to be determined in the Driver, the Driver needs to determine the complete path of the file that needs to be processed by the Linker. Due to this, few tests have been removed since the Driver uses paths that doesnot exist. llvm-svn: 195583
-
- Nov 23, 2013
-
-
Shankar Easwaran authored
Hidden nodes could be a result of expansion, where a flavor might decide to keep the node that we want to expand but discard it from being processed by the resolver. Verifies with unittests. llvm-svn: 195516
-
Shankar Easwaran authored
Flavors may like to expand InputGraph nodes, when a filenode after parsing results in more elements. One such example is while parsing GNU linker scripts. The linker scripts after parsing would result in a lot of filenodes and probably controlnodes too. Adds unittests to verify functionality. llvm-svn: 195515
-
- Nov 22, 2013
-
-
Rui Ueyama authored
This is the first step towards DLL creation support. Resource-only DLLs don't have entry point address. llvm-svn: 195510
-
Shankar Easwaran authored
llvm-svn: 195388
-
- Nov 21, 2013
-
-
Rui Ueyama authored
It's allowed to specify library files *before* object files in the command line. Object files seems to be processed first, and then their undefined symbols are resolved from the libraries. This patch implements the compatible behavior. llvm-svn: 195295
-
Rui Ueyama authored
llvm-svn: 195289
-
- Nov 20, 2013
-
-
Rui Ueyama authored
So that the LLD won't print error message saying that it couldn't find /implib or /safeseh files. llvm-svn: 195276
-
- Nov 19, 2013
-
-
Rui Ueyama authored
llvm-svn: 195105
-
- Nov 06, 2013
-
-
Rui Ueyama authored
These fields are for /align option. Section alignment can be set per-section basis with /section option too. In order to avoid name conflicts, rename the existing identifiers to become more specific. No functionality change. llvm-svn: 194160
-
Rui Ueyama authored
/section command line option is to set/reset attributes of the Characteristics field in the section header. You can set non-default values with this option. You can make .data section executable with this, for example. This patch implements the parser of the command line option. The code to use the parsed values will be committed in a separate patch. llvm-svn: 194133
-
Rui Ueyama authored
I'm not sure if it is really an alias for /nodefaultlib, but I can say that they are at least similar. Making it an alias would be better than ignoring it. llvm-svn: 194131
-
Rui Ueyama authored
/defaultlib options can be specified implicitly via the .drectve section, and it's pretty common that multiple object files add the same library, such as user32.lib, to the input. We shouldn't add the same library multiple times. llvm-svn: 194129
-
Rui Ueyama authored
msvcrt.lib contains "/disallowlib" command line option in its .drectve section. I couldn't spot any documentation for the option. Ignore it for now so that we can link the library without error. llvm-svn: 194114
-
- Oct 26, 2013
-
-
Rui Ueyama authored
/merge:<from>=<to> option makes the linker to combine "from" section to "to" section. This patch is to parse the option. The actual feature will be implemented in a subsequent patch. llvm-svn: 193454
-
- Oct 22, 2013
-
-
Rui Ueyama authored
llvm-svn: 193201
-
Rui Ueyama authored
/manifestfile:<path> specifies an alternative manifest file output path. Default is "<output-path>.manifest" where <output-path> is the executable's path. llvm-svn: 193195
-
Rui Ueyama authored
uiAccess argument's type is not really boolean. It's string. llvm-svn: 193171
-
Rui Ueyama authored
This option is used for the manifest file too. llvm-svn: 193145
-
Rui Ueyama authored
The manifest file is an XML file that conveys some information to the loader, such as whether the executable needs to run as Administrator or not. This patch is to parse command line option for manifest file. Actual XML file generation will be done in a separate patch. llvm-svn: 193141
-
- Oct 16, 2013
-
-
Rui Ueyama authored
Dead-strip root symbols can be undefined atoms, but should not really be nonexistent, because dead-strip root symbols should be added to initial undefined atoms at startup. Whenever you look up its name in the symbol table, some type of atom will always exist. llvm-svn: 192831
-
- Oct 08, 2013
-
-
Rui Ueyama authored
Differential Revision: http://llvm-reviews.chandlerc.com/D1853 llvm-svn: 192167
-
- Oct 07, 2013
-
-
Shankar Easwaran authored
Changes :- a) Functionality in InputGraph to insert Input elements at any position b) Functionality in the Resolver to use nextFile c) Move the functionality of assigning file ordinals to InputGraph d) Changes all inputs to MemoryBuffers e) Remove LinkerInput, InputFiles, ReaderArchive llvm-svn: 192081
-
- Sep 28, 2013
-
-
Nick Kledzik authored
llvm-svn: 191594
-
Nick Kledzik authored
Stop using some locally defined mach-o constants. llvm-svn: 191581
-
- Sep 27, 2013
-
-
Rui Ueyama authored
llvm-svn: 191469
-
- Sep 25, 2013
-
-
Rui Ueyama authored
This patch inverts the return value of these functions, so that they return "true" on success and "false" on failure. The meaning of boolean return value was mixed in LLD; for example, InputGraph::validate() returns true on success. With this patch they'll become consistent. CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1748 llvm-svn: 191341
-
- Sep 24, 2013
-
-
Rui Ueyama authored
llvm-svn: 191317
-
Rui Ueyama authored
llvm-svn: 191276
-
Rui Ueyama authored
/PDBALTPATH:<path> is an option to embed a different path for the PDB file to the binary than the actual PDB file location. Because we don't support PDB file, we'll just ignore the option for now. llvm-svn: 191273
-
Rui Ueyama authored
llvm-svn: 191269
-
Rui Ueyama authored
llvm-svn: 191268
-
Rui Ueyama authored
llvm-svn: 191259
-
Rui Ueyama authored
llvm-svn: 191254
-
Rui Ueyama authored
We used to support both Windows and Unix style command line options. In Windows style, an option and its value are separated by ":" (colon). In Unix, separator is a space. Accepting both styles were convenient, but we can no longer allow Unix style because I found that can be ambiguous. For example, /nodefaultlib option takes an optional argument. In Windows style it's going to be something like "/nodefaultlib:foo". There's no ambiguity what "foo" means. However, if the option is "/nodefaultlib foo", "foo" can be interpreted either an optional argument for "/nodefaultlib" or an input file "foo.obj". We should just stop accepting the non-standard command line style. llvm-svn: 191247
-
Rui Ueyama authored
These options are to enable DLL delay loading. If enabled, DLL is loaded at run time by a helper routine when a function in the DLL is actually called for the first time, instead of making the Windows loader to load all DLLs at startup time. This should shorten startup delay if an executable have many imported symbols. The linker needs to create a "delayed import table" and link delayimp.lib in which helper functions are defined to support the feature. For now, we just ignore the options, so that the linker does not complain when it sees these options. We want to support them in the future. llvm-svn: 191232
-
- Sep 23, 2013
-
-
Rui Ueyama authored
llvm-svn: 191229
-
Rui Ueyama authored
llvm-svn: 191228
-
Rui Ueyama authored
llvm-svn: 191227
-