Rui Ueyama
d7c417c03e
ELF2: Assign bool values directly. NFC.
...
llvm-svn: 248837
2015-09-29 22:33:18 +00:00
Rui Ueyama
4eed0114c5
ELF2: Use 'a.out' as default output file name.
...
llvm-svn: 248831
2015-09-29 21:49:40 +00:00
Rui Ueyama
9d4c6d771b
[ELF2] Implemented --entry flag.
...
Patch from George Rimar!
llvm-svn: 248806
2015-09-29 16:40:13 +00:00
Rafael Espindola
4b2ca85c1a
Implement --allow-multiple-definition.
...
Patch by George Rimar!
llvm-svn: 248733
2015-09-28 20:30:11 +00:00
Igor Kudrin
1309fc0378
[ELF2] Add --sysroot command line switch
...
Reviewers: rafael, ruiu
Subscribers: llvm-commits
Projects: #lld
Differential Revision: http://reviews.llvm.org/D13209
llvm-svn: 248715
2015-09-28 15:01:59 +00:00
Rafael Espindola
abb7b28686
Add support for -L and -l command line switches.
...
Patch by Igor Kudrin!
llvm-svn: 248708
2015-09-28 12:52:21 +00:00
Rafael Espindola
551dfd8818
Implement --noinhibit-exec.
...
Patch by George Rimar!
llvm-svn: 248605
2015-09-25 19:24:57 +00:00
Davide Italiano
d75d3b94fd
[ELF2] Add support for -discard-none.
...
Differential Revision: http://reviews.llvm.org/D13083
llvm-svn: 248499
2015-09-24 15:08:23 +00:00
Rafael Espindola
05a3dd2cba
Implement --export-dynamic.
...
llvm-svn: 248347
2015-09-22 23:38:23 +00:00
Davide Italiano
5445b2de50
[ELF2] Implement support for -discard-locals.
...
This is not on by default, but it may make sense to change it in future.
llvm-svn: 248133
2015-09-20 21:58:12 +00:00
Davide Italiano
6d328d3841
[ELF2] Initial support for local symbols.
...
Symbol table is now populated correctly, but some fields are missing,
they'll be added in the future. This patch also adds --discard-all
flag, which was the default behavior until now.
Differential Revision: http://reviews.llvm.org/D12874
llvm-svn: 247849
2015-09-16 20:45:57 +00:00
Rafael Espindola
4340aad144
Start adding support for creating shared libraries.
...
They are not fully functional yet, but this implements enough support for lld
itself to read them.
With that, delete the .so binary we were using for tests and start eating our
own dog food.
llvm-svn: 247487
2015-09-11 22:42:45 +00:00
Rafael Espindola
2e9eac13c7
Implement -rpath.
...
llvm-svn: 247475
2015-09-11 21:18:56 +00:00
Rafael Espindola
7010776db7
Implement the -dynamic-linker option.
...
With this dynamic executables can be executed with just ./t instead of
/lib64/ld-2.20.so ./t
llvm-svn: 247446
2015-09-11 18:49:42 +00:00
Rafael Espindola
4f624b9581
Simplify reporting of undefined symbols.
...
llvm-svn: 247016
2015-09-08 14:32:29 +00:00
Michael J. Spencer
1b348a68e5
[elf2] Add basic archive file support.
...
llvm-svn: 246886
2015-09-04 22:28:10 +00:00
Rafael Espindola
f98d6d84cd
Start adding support for shared libraries.
...
This just adds the types and enough support to detect incompatibilities among
shared libraries and object files.
llvm-svn: 246797
2015-09-03 20:03:54 +00:00
Rafael Espindola
8aeb13fec1
Add a helper function for getting the first object file.
...
Also preparation for shared objects. It will become the first ELF file.
llvm-svn: 246796
2015-09-03 19:13:13 +00:00
Rafael Espindola
222edc66d6
Make ObjectFiles private. NFC.
...
Just preparation for adding support for shared libraries.
llvm-svn: 246793
2015-09-03 18:56:20 +00:00
Rafael Espindola
905ad3442d
Split out the ELF kind from the InputFile Kind.
...
There were at least two issues with having them together:
* For compatibility checks, we only want to look at the ELF kind.
* Adding support for shared libraries should introduce one InputFile kind,
not 4.
llvm-svn: 246707
2015-09-02 20:43:43 +00:00
Rui Ueyama
570752c7ac
Do not use unique pointers. NFC.
...
These unique pointers have the exact same lifetime as automatic
variables, so use automatic variables instead.
llvm-svn: 245281
2015-08-18 09:13:25 +00:00
Rui Ueyama
880632c458
ELF2: Remove unused global variable.
...
A global variable "Driver" is to re-entry to the driver to parse a
.drectve section. Because the need is COFF-specific, we don't need
this variable for ELF.
llvm-svn: 244680
2015-08-11 21:45:55 +00:00
Rafael Espindola
192e1fa59d
Move the error handling functions to Error.h. NFC.
...
llvm-svn: 244216
2015-08-06 15:08:23 +00:00
Rui Ueyama
cb8474edae
COFF, ELF2: Pass output file path implicitly using Config global variable.
...
Various parameters are passed implicitly using Config global variable
already. Output file path is no different from others, so there was no
special reason to handle that differnetly.
This patch changes the signature of writeResult(SymbolTable *, StringRef)
to writeResult(SymbolTable *).
llvm-svn: 244180
2015-08-05 23:51:50 +00:00
Rui Ueyama
afff74e228
ELF2: Simplify Writer interface.
...
We are using Writer more like a function instead of a class.
This patch makes it a function to simplify the interface.
All details of Writer class is now hidden from other parts of the linker.
llvm-svn: 244169
2015-08-05 23:24:46 +00:00
Rafael Espindola
4b7c2fc64e
Add bare minimum to get a working i386 linux program.
...
llvm-svn: 244050
2015-08-05 15:08:40 +00:00
Rafael Espindola
aefd5c1617
Create ObjectFile with the correct endian and word size.
...
The writer is still hard coded to 64 bits le, but with this we can test for
invalid ELF files.
llvm-svn: 243993
2015-08-04 15:45:54 +00:00
Rafael Espindola
e0a5c09a5c
Use make_unique. NFC.
...
llvm-svn: 243988
2015-08-04 15:06:36 +00:00
Rafael Espindola
2ffdd4d0e5
The SymbolTable doesn't need to be a template.
...
It was already using just code that is common to all object files.
llvm-svn: 243985
2015-08-04 14:29:01 +00:00
Michael J. Spencer
84487f1174
[ELF2] Add a new ELF linker based on the new PE/COFF linker.
...
Differential Revision: http://reviews.llvm.org/D11188
llvm-svn: 243161
2015-07-24 21:03:07 +00:00
Michael J. Spencer
bae540e945
Revert ELF port. Posting to mailing list.
...
llvm-svn: 242118
2015-07-14 04:49:48 +00:00
Michael J. Spencer
64661cdb4c
Remove commented out code.
...
llvm-svn: 242092
2015-07-14 00:11:38 +00:00
Michael J. Spencer
8a4145411f
Initial ELF port.
...
This is a direct port of the new PE/COFF linker to ELF.
It can take a single object file and generate a valid executable that executes at the first byte in the text section.
llvm-svn: 242088
2015-07-13 23:48:06 +00:00