llvm-project/lld/COFF
Martin Storsjo 7f71acdcd7 [COFF] Add support for automatically exporting all symbols
GNU ld automatically exports all symbols if no symbols have
been chosen to export via either def files or dllexport attributes.
The same behaviour can also be enabled via the GNU ld option
--export-all-symbols, in case some symbols are marked for export
via a def file or dllexport attribute.

The list of excluded symbols is from GNU ld, minus the
cygwin specific symbols.

Also add support for outputting the actual list of exported
symbols in a def file, as in the GNU ld option --output-def.

These options in GNU ld are documented in
https://sourceware.org/binutils/docs/ld/WIN32.html.

This currently exports all symbols from object files pulled in
from libmingw32 and libmingwex and other static libraries
that are linked in.

Differential Revision: https://reviews.llvm.org/D38760

llvm-svn: 315562
2017-10-12 05:37:13 +00:00
..
CMakeLists.txt lld: Prune unused libdeps. 2017-10-12 00:04:24 +00:00
Chunks.cpp [COFF] Implement support for IMAGE_REL_ARM64_ADDR32NB 2017-10-12 05:37:06 +00:00
Chunks.h [COFF] Don't error out on relocations to discarded sections in .eh_frame 2017-10-10 06:05:29 +00:00
Config.h Revert r303378: Set IMAGE_DLL_CHARACTERISTICS_NO_BIND. 2017-09-15 22:49:13 +00:00
DLL.cpp Remove {get,set}Align accessor functions and use Alignment member variable instead. 2017-09-13 21:54:55 +00:00
DLL.h Revert "Merge IAT and ILT." 2017-06-02 18:49:38 +00:00
Driver.cpp [COFF] Add support for automatically exporting all symbols 2017-10-12 05:37:13 +00:00
Driver.h Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
DriverUtils.cpp Fix crbug 759265 by suppressing llvm mt warnings. 2017-09-06 01:50:36 +00:00
Error.cpp [lld/pdb] Add some basic linker module symbols. 2017-07-10 21:01:37 +00:00
Error.h Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
ICF.cpp [ICF] Include section contents in section hash values. 2017-10-02 01:21:07 +00:00
InputFiles.cpp Update for llvm change. 2017-10-11 17:23:29 +00:00
InputFiles.h Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
LTO.cpp COFF: When generating code for LTO, use static reloc model on 32-bit x86. 2017-10-11 00:46:58 +00:00
LTO.h Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
MapFile.cpp Remove {get,set}Align accessor functions and use Alignment member variable instead. 2017-09-13 21:54:55 +00:00
MapFile.h COFF: Change the /lldmap output format to be more like the ELF linker. 2017-01-14 03:14:46 +00:00
MarkLive.cpp [COFF] Allow debug info to relocate against discarded symbols 2017-06-28 17:06:35 +00:00
Memory.h Remove lld/Support/Memory.h. 2016-12-18 14:06:06 +00:00
Options.td [COFF] Add support for automatically exporting all symbols 2017-10-12 05:37:13 +00:00
PDB.cpp [COFF] Remove unused variable NFC 2017-09-15 01:07:08 +00:00
PDB.h [LLD COFF/PDB] Incrementally update the build id. 2017-08-15 21:31:41 +00:00
README.md Update the documents of the new LLD. 2016-03-12 06:06:40 +00:00
Strings.cpp Fix build breakage. 2017-06-19 18:04:34 +00:00
Strings.h COFF: Define overloaded toString functions. 2016-12-07 23:17:02 +00:00
SymbolTable.cpp Use error() instead of warn() to report undefined symbols. 2017-10-06 23:43:54 +00:00
SymbolTable.h COFF: simplify thunk handling (NFC) 2017-09-01 23:35:43 +00:00
Symbols.cpp [PDB] Write public symbol records and the publics hash table 2017-07-27 18:25:59 +00:00
Symbols.h Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
Writer.cpp [COFF] Check for sections larger than 4 GiB 2017-09-19 23:58:05 +00:00
Writer.h Remove Symtab aliases. 2017-08-28 21:51:07 +00:00

README.md

See docs/NewLLD.rst