forked from OSchip/llvm-project
347fb02093
This patch does *not* implement any semantic actions, but it is a first step to teach LLD how to read complete linker scripts. The additional linker scripts statements whose parsing is now supported are: * SEARCH_DIR directive * SECTIONS directive * Symbol definitions inside SECTIONS including PROVIDE and PROVIDE_HIDDEN * C-like expressions used in many places in linker scripts * Input to output sections mapping The goal of this commit was guided towards completely parsing a default GNU ld linker script and the linker script used to link the FreeBSD kernel. Thus, it also adds a test case based on the default linker script used in GNU ld for x86_64 ELF targets. I tested SPEC userland programs linked by GNU ld, using the linker script dump'ed by this parser, and everything went fine. I then tested linking the FreeBSD kernel with a dump'ed linker script, installed the new kernel and booted it, everything went fine. Directives that still need to be implemented: * MEMORY * PHDRS Reviewers: silvas, shankarke and ruiu http://reviews.llvm.org/D5852 llvm-svn: 221126 |
||
---|---|---|
.. | ||
expr-precedence.test | ||
incomplete-ternary.test | ||
libname-err-1.test | ||
libname-err-2.test | ||
linker-script-outputformat.test | ||
linker-script.test | ||
missing-entry-symbol.test | ||
missing-input-file-name.test | ||
missing-input-sections.test | ||
missing-operand.test | ||
missing-output-section-name.test | ||
missing-symbol.test | ||
sections.test |