commit | 5d924cd2ee7a7b252a61ea626cd6fe6d6c95ffba | [log] [tgz] |
---|---|---|
author | Jez Ng <jezng@fb.com> | Fri Mar 12 17:26:12 2021 -0500 |
committer | Copybara-Service <copybara-worker@google.com> | Thu Mar 18 00:35:49 2021 -0700 |
tree | d26ec296e1e249d03b20f9ff7ae0483364767585 | |
parent | 4be589fd04c72586a18f75036e631e685451c597 [diff] |
[lld-macho][nfc] Give every SyntheticSection a fake InputSection Previously, it was difficult to write code that handled both synthetic and regular sections generically. We solve this problem by creating a fake InputSection at the start of every SyntheticSection. This refactor allows us to handle DSOHandle like a regular Defined symbol (since Defined symbols must be attached to an InputSection), and paves the way for supporting `__mh_*header` symbols. Additionally, it simplifies our binding/rebase code. I did have to extend Defined a little -- it now has a `linkerInternal` flag, to indicate that `___dso_handle` should not be in the final symbol table. I've also added some additional testing for `___dso_handle`. Reviewed By: #lld-macho, oontvoo Differential Revision: https://reviews.llvm.org/D98545 GitOrigin-RevId: d8283d9ddcc5e9ffda7e72ae122df279b2c5ee17
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
.