1
1
mirror of https://github.com/rui314/mold.git synced 2024-10-06 01:28:12 +03:00

Update mold.1 (automated commit)

This commit is contained in:
Rui Ueyama 2024-07-29 01:55:03 +00:00
parent 2c3dcc4370
commit 55e516da6f

View File

@ -86,6 +86,17 @@ By default, \fBmold\fR doesn't merge input sections by name when merging input o
.IP
This option changes the behavior so that \fBmold\fR merges input sections by name by the default section merging rules\.
.TP
\fB\-\-remove\-landing\-pads\fR, \fB\-\-no\-remove\-landing\-pads\fR
As a security measure, a few CPU instruction sets have recently gained support of landing pad instructions\. If the feature is enabled, an \fIindirect\fR branch must "land" on a landing pad instruction, or a CPU\-level fault is raised\. In other words, it restricts the locations to which indirect branch instructions can jump to\. The feature makes ROP or JOP attacks harder to conduct\.
.IP
To use the feature, a function whose pointer is taken needs to begin with a landing pad because a function call via a function pointer is compiled to an indirect branch\. On the other hand, if a function is called only directly (i\.e\. referred to only by \fIdirect\fR branch instructions), it doesn't have to begin with it\.
.IP
By default, the compiler always emits a landing pad at the beginning of each global function because it doesn't know whether or not the function's pointer is taken in another translation unit\. As a result, the resulting binary has more attack surface than necessary\.
.IP
If \fB\-\-remove\-landing\-pads\fR is given, mold conducts a whole program analysis to identify functions whose addresses are actually taken and rewrites landing pads with no\-ops for non\-address\-taken functions, reducing the attack surface\.
.IP
This feature is currently available only on x86\-64\.
.TP
\fB\-\-repro\fR
Archive input files, as well as a text file containing command line options, in a tar file so that you can run \fBmold\fR with the exact same inputs again\. This is useful for reporting a bug with a reproducer\. The output filename is \fBpath/to/output\.tar\fR, where \fBpath/to/output\fR is an output filename specified by \fB\-o\fR\.
.TP