commit | 9ec789f1545f469b26a026e3f642b7b14c4601d2 | [log] [tgz] |
---|---|---|
author | Peter Smith <peter.smith@linaro.org> | Mon May 13 16:01:26 2019 +0000 |
committer | Peter Smith <peter.smith@linaro.org> | Mon May 13 16:01:26 2019 +0000 |
tree | aa80eaf9038d9c3411ebaa6614ae3a88869958b7 | |
parent | d2085a5f147a11c487a72e63284e37e8d3792dee [diff] |
[ELF] Full support for -n (--nmagic) and -N (--omagic) via common page The -n (--nmagic) disables page alignment, and acts as a -Bstatic The -N (--omagic) does what -n does but also marks the executable segment as writeable. As page alignment is disabled headers are not allocated unless explicit in the linker script. To disable page alignment in LLD we choose to set the page sizes to 1 so that any alignment based on the page size does nothing. To set the Target->PageSize to 1 we implement -z common-page-size, which has the side effect of allowing the user to set the value as well. Setting the page alignments to 1 does mean that any use of CONSTANT(MAXPAGESIZE) or CONSTANT(COMMONPAGESIZE) in a linker script will return 1, unlike in ld.bfd. However given that -n and -N disable paging these probably shouldn't be used in a linker script where -n or -N is in use. Differential Revision: https://reviews.llvm.org/D61688 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@360593 91177308-0d34-0410-b5e6-96231b3b80d8
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.
In order to make sure various developers can evaluate patches over the same tests, we create a collection of self contained programs.
It is hosted at https://s3-us-west-2.amazonaws.com/linker-tests/lld-speed-test.tar.xz
The current sha256 is 10eec685463d5a8bbf08d77f4ca96282161d396c65bd97dc99dbde644a31610f.