| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
The parsing routines in the linker script to parse strings encoded in various
formats(hexadecimal, octal, decimal, etc), is needed by the GNU driver too. This
library provides helper functions for all flavors and flavors to add helper
functions which other flavors may make use of.
llvm-svn: 221583
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mach-O normalized file reader assumes that the entire file is aligned
to a large boundary. If the in-memory file is not aligned properly, it will
abort with an assertion failure in read32/read64. This patch forces the
in-memory file for the unit test to be aligned at 64-byte boundary.
I found these tests are failing on Windows, but theoretically they could
fail on other platform.
llvm-svn: 221508
|
|
|
|
|
|
|
| |
llvm build and not supposed to be resident on
the system.
llvm-svn: 221314
|
|
|
|
|
|
|
| |
/nodefaultlib argument is a path name, so that needs to be compared
case-insensitive way. Also the ".lib" extension should be ignored.
llvm-svn: 220508
|
|
|
|
| |
llvm-svn: 220131
|
|
|
|
|
|
| |
This is a step toward full support of /delayload.
llvm-svn: 219344
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Add support in the universal driver to print the lld version and the
repository version.
Test Plan: A driver test is added
Reviewers: kledzik, ruiu
Reviewed By: ruiu
Subscribers: llvm-commits
Projects: #lld
Differential Revision: http://reviews.llvm.org/D5641
llvm-svn: 219277
|
|
|
|
| |
llvm-svn: 218646
|
|
|
|
|
|
|
|
| |
/machine:ebc was previously recognized but rejected. Unknown architecture
names were handled differently but eventually rejected too. We don't need
to distinguish them.
llvm-svn: 218344
|
|
|
|
|
|
|
|
|
| |
This patch changes the type of export table set from std::set to
std::vector. The new code is slightly inefficient, but because
export table elements are actually mutable, std::vector is better
here. No functionality change.
llvm-svn: 218343
|
|
|
|
|
|
|
|
|
| |
If two or more /export options are given for the same symbol, we should
always print a warning message and use the first one regardless of other
parameters.
Previously there was a case that the first parameter is not used.
llvm-svn: 218342
|
|
|
|
|
|
|
|
|
| |
Accept /machine:arm as an argument. This is changed to support ARM NT.
Although there is no way to differentiate between ARM (Windows CE) and ARM NT
(Windows on ARM), since LLVM currently only supports Windows on ARM, simply take
/machine:arm to mean Windows on ARM.
llvm-svn: 218105
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mach-O has a "fat" (or "universal") variant where the same contents built for
different architectures are concatenated into one file with a table-of-contents
header at the start. But this leaves a dilemma for the linker - which
architecture to use.
Normally, the linker command line -arch is used to force which slice of any fat
files are used. The clang compiler always passes -arch to the linker when
invoking it. But some Makefiles invoke the linker directly and don’t specify
the -arch option. For those cases, the linker scans all input files in command
line order and finds the first non-fat object file. Whatever architecture it
is becomes the architecture for the link.
llvm-svn: 217189
|
|
|
|
| |
llvm-svn: 217114
|
|
|
|
|
|
|
| |
When -dead_strip is used with -exported_symbols_list the initial set of
live atoms are those in the export list.
llvm-svn: 216213
|
|
|
|
|
|
|
|
|
|
| |
This patch adds the initial ELF/AArch64 support to lld. Only a basic "Hello
World" app has been successfully tested for both dynamic and static compiling.
Differential Revision: http://reviews.llvm.org/D4778
Patch by Daniel Stewart <stewartd@codeaurora.org>!
llvm-svn: 215544
|
|
|
|
|
|
|
| |
/profile implies /fixed:no -- so we had to *enable* base
relocations rather than disabling it.
llvm-svn: 215389
|
|
|
|
| |
llvm-svn: 213984
|
|
|
|
|
|
|
|
|
| |
The entry point file needs to be processed after all other
object files and before all .lib files. It was processed
after .lib files. That caused an issue that the entry point
function was not resolved from the standard library files.
llvm-svn: 213804
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On Windows there are four "main" functions -- main, wmain, WinMain,
or wWinMain. Their parameter types are diffferent. The standard
library provides four different entry functions (i.e.
{w,}{WinMain,main}CRTStartup) for them. You need to use the right
entry routine for your "main" function.
If you give an /entry option, the specified name is used
unconditionally.
Otherwise, the linker needs to select the right one based on
user-supplied entry point function. This can be done after the
linker reads all the input files.
This patch moves the code to determine the entry point function
from the driver to a virtual input file. It also implements the
correct logic for the entry point function selection.
llvm-svn: 213713
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously we invoked cvtres.exe for each compiled Windows
resource file. The generated files were then concatenated
and embedded to the executable.
That was not the correct way to merge compiled Windows
resource files. If you just concatenate generated files,
only the first file would be recognized and the rest would
be ignored as trailing garbage.
The right way to merge them is to call cvtres.exe with
multiple input files. In this patch we do that in the
Windows driver.
llvm-svn: 212763
|
|
|
|
| |
llvm-svn: 212407
|
|
|
|
|
|
|
| |
This adjusts the USED library list following recent changes in the object
file heirarchy.
llvm-svn: 212400
|
|
|
|
| |
llvm-svn: 211367
|
|
|
|
| |
llvm-svn: 210820
|
|
|
|
| |
llvm-svn: 210801
|
|
|
|
|
|
| |
This will reduce the noise in a followup patch.
llvm-svn: 210800
|
|
|
|
| |
llvm-svn: 210799
|
|
|
|
| |
llvm-svn: 210781
|
|
|
|
| |
llvm-svn: 210714
|
|
|
|
|
|
|
|
| |
Because the files in Core actually depend on these files.
Differential Revision: http://reviews.llvm.org/D4000
llvm-svn: 210710
|
|
|
|
|
|
|
|
| |
This provides support for the autoconfing & make build style.
The format, style and implementation follows that used within the llvm and clang projects.
TODO: implement out-of-source documentation builds.
llvm-svn: 210177
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make it possible to add observers to an Input Graph, so that files
returned from an Input Graph can be examined before they are
passed to Resolver.
To implement some PE/COFF features we need to know all the symbols
that *can* be solved, including ones in archive files that are not
yet to be read.
Currently, Resolver only maintains a set of symbols that are
already read. It has no knowledge on symbols in skipped files in
an archive file.
There are many ways to implement that. I chose to apply the
observer pattern here because it seems most non-intrusive. We don't
want to mess up Resolver with architecture specific features.
Even in PE/COFF, the feature that needs this mechanism is minor.
So I chose not to modify Resolver, but add a hook to Input Graph.
Differential Revision: http://reviews.llvm.org/D3735
llvm-svn: 208753
|
|
|
|
| |
llvm-svn: 208428
|
|
|
|
|
|
|
|
| |
Previously only the toplevel elements were expanded by expandElements().
Now we recursively call getReplacements() to expand input elements even
if they are in, say, in a group.
llvm-svn: 208144
|
|
|
|
| |
llvm-svn: 208123
|
|
|
|
| |
llvm-svn: 208121
|
|
|
|
| |
llvm-svn: 208120
|
|
|
|
| |
llvm-svn: 208119
|
|
|
|
| |
llvm-svn: 208118
|
|
|
|
| |
llvm-svn: 208116
|
|
|
|
| |
llvm-svn: 208112
|
|
|
|
| |
llvm-svn: 208111
|
|
|
|
|
|
|
| |
addInputElement() never fails, and no one checks its return value
except tests. Let's simplify the signature.
llvm-svn: 208109
|
|
|
|
| |
llvm-svn: 208101
|
|
|
|
| |
llvm-svn: 208020
|
|
|
|
|
|
|
|
| |
I'm a bit surprised that I have not implemented this yet. This is
definitely needed to handle real-world module definition files.
This patch contains a unit test for r207294.
llvm-svn: 207297
|
|
|
|
|
|
| |
This option is to override the default import file path.
llvm-svn: 207175
|
|
|
|
|
|
|
|
|
|
|
| |
Previously LLD would fail if /OPT:icf, /OPT:lbr or such are specified,
because these command line flags would be handled as unknown ones. We
rather want LLD to ignore these known but yet-to-be-implemented options
for now.
Added tests for the driver as well.
llvm-svn: 206863
|
|
|
|
|
|
| |
Unlike Win32/x86, it has no "@12" suffix.
llvm-svn: 206648
|