llvm-project/lld
Rui Ueyama 1ebc8ed78a ELF: Add wildcard pattern matching to SECTIONS linker script command.
Each rule in SECTIONS commands is something like ".foo *(.baz.*)",
which instructs the linker to collect all sections whose name matches
".baz.*" from all files and put them into .foo section.

Previously, we didn't recognize the wildcard character. This patch
adds that feature.

Performance impact is a bit concerning because a linker script can
contain hundreds of SECTIONS rules, and doing pattern matching against
each rule would be too expensive. We could merge all patterns into
single DFA so that it takes O(n) to the input size. However, it is
probably too much at this moment -- we don't know whether the
performance of pattern matching matters or not. So I chose to
implement the simplest algorithm in this patch. I hope this simple
pattern matcher is sufficient.

llvm-svn: 260745
2016-02-12 21:47:28 +00:00
..
COFF Update for LLVM function name change. 2016-01-14 20:53:50 +00:00
ELF ELF: Add wildcard pattern matching to SECTIONS linker script command. 2016-02-12 21:47:28 +00:00
cmake/modules
docs getting_started.rst: fix 'unknown target name' error 2016-01-27 17:54:35 +00:00
include/lld Use __nl_symbol_ptr instead of __got in the stubs pass on x86 archs. 2016-02-09 20:11:17 +00:00
lib Use ArrayRef instead of deep copies of CompactUnwindEntries. NFC. 2016-02-10 21:32:24 +00:00
test ELF: Add wildcard pattern matching to SECTIONS linker script command. 2016-02-12 21:47:28 +00:00
tools Rename ld.lld2 to ld.lld since it is the default. 2015-11-18 06:11:01 +00:00
unittests Add support for export_dynamic cmdline option and behaviour. 2016-01-22 21:13:24 +00:00
.arcconfig Update Phabricator server. 2014-04-07 04:52:24 +00:00
.clang-format Remove redundant "Standard: Cpp11" tag. The LLVM style has used the 2014-07-04 12:08:03 +00:00
.gitignore Update .gitignore to ignore hidden MacOSX Finder droppings 2014-07-16 21:01:17 +00:00
CMakeLists.txt Set CMake ADDITIONAL_HEADER_DIRS on libraries with headers in /include. NFC. 2016-01-07 00:14:09 +00:00
CODE_OWNERS.TXT Add initial CODE_OWNERS.TXT file 2015-07-25 00:44:37 +00:00
LICENSE.TXT Update copyright year to 2015. 2015-03-12 20:14:35 +00:00
README.md

README.md

LLVM Linker (lld)

This directory and its subdirectories contain source code for the LLVM Linker, a modular cross platform linker which is built as part of the LLVM compiler infrastructure project.

lld is open source software. You may freely distribute it under the terms of the license agreement found in LICENSE.txt.