forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrustc.1
133 lines (133 loc) · 3.78 KB
/
rustc.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
.TH RUSTC "1" "October 2011" "Rust" "User Commands"
.SH NAME
rustc \- rust compiler
.SH SYNOPSIS
rustc [\fB-h\fR] [\fB-v\fR] [\fB-o\fR \fIoutfile\fR]
[\fB--lib\fR] [\fB--static\fR] [\fB-L\fR \fIpath\fR]
[\fB-g\fR] [\fB-S\fR] [\fB-c\fR] <\fIinput\fR>
.PP
Only the most commonly-used options are listed here. All options are listed and
described below.
.SH DESCRIPTION
This program is a compiler for the Rust language, available at
<\fBhttps://github.com/graydon/rust\fR>.
.SH OPTIONS
.TP
\fB-h, --help\fR:
Display help.
.TP
\fB-v, --version\fR:
Display version information.
.TP
\fB-o\fR \fIfilename\fR:
Write output to \fIfilename\fR. The default
output filename for \fBfoo.rs\fR is otherwise \fBfoo\fR plus any
platform-specific extension (when compiling a binary), a
platform-specific name, e.g. \fBlibfoo.so\fR (when compiling a
library), \fBfoo.o\fR (when using \fB-c\fR), \fBfoo.s\fR (when using
\fB-S\fR) or \fBfoo.bc\fR (when using \fB--emit-llvm\fR), and
.TP
\fB--lib\fR:
Compile and link a library crate into a shared object.
.TP
\fB--static\fR:
Produce a statically-linked binary, or generate a static
library.
.TP
\fB--pretty\fR \fI[type]\fR:
Pretty-print the input. Valid \fItype\fRs are:
.RS
.TP
\fBnormal\fR: Un-annotated source (default).
.TP
\fBexpanded\fR: Crates expanded.
.TP
\fBtyped\fR: Crates expanded, all expressions annotated with types.
.TP
\fBidentified\fR: Fully parenthesized, ast nodes and blocks annotated with IDs.
.RE
.TP
\fB--ls\fR:
Lists symbols defined by the specified \fBcompiled\fR library.
.TP
\fB-L\fR \fIpath\fR:
Adds \fIpath\fR to the library search path.
.TP
\fB--noverify\fR:
Disables LLVM verification pass, which does sanity checking of
bitcode generated by rustc. Using this option gives a slight speedup, at the
cost of vastly reduced ability to catch rustc bugs. See
<\fBhttp://llvm.org/docs/Passes.html\fR> for a list of properties checked.
.TP
\fB--parse-only\fR:
Run the parse phase only. If parsing succeeds, produces no
output.
.TP
\fB--no-trans\fR:
Run all passes except translation. Produces no output.
.TP
\fB-g\fR:
Produce debug info.
.TP
\fB--opt-level\fR \fIlevel\fR:
Set optimization level to \fIlevel\fR.
.TP
\fB-O\fR:
Equal to --opt-level=2
.TP
\fB-S\fR:
Compile to assembly, but do not assemble or link.
.TP
\fB-c\fR:
Compile and assemble, but do not link.
.TP
\fB--emit-llvm\fR:
Generate llvm bitcode.
.TP
\fB--save-temps\fR:
For foo.rs, save generated bitcode before optimization to
\fBfoo.bc\fR, bitcode after optimization to \fBfoo.opt.bc\fR, and the generated
object file to \fBfoo.o\fR.
.TP
\fB--stats\fR:
Print statistics about compilation.
.TP
\fB--cfg\fR \fIcfgspec\fR:
Provide a crate config spec.
.TP
\fB--time-passes\fR:
Print runtimes of compilation phases.
.TP
\fB--time-llvm-passes\fR:
Print runtimes of llvm phases.
.TP
\fB--sysroot\fR \fIpath\fR:
Set the system root. Default is the directory above
rustc's.
.TP
\fB--target\fR \fIgnu-config-name\fR:
Set the compilation target, which is a
string of the form \fBcpu\fR-\fBmanufacturer\fR-\fBkernel\fR[-\fBos\fR]. Example
values include "i686-unknown-linux-gnu" and "mips-idt-ecoff"; see
<\fBhttp://sources.redhat.com/autobook/autobook/autobook_17.html\fR>. If not
supplied, the host triple is used (see \fB--version\fR output).
.TP
\fB--no-typestate\fR:
Disable the typestate pass. This breaks some safety
guarantees of the language and is quite dangerous.
.TP
\fB--test\fR:
Build a test harness.
.TP
\fB--gc\fR:
\fBEXPERIMENTAL\fR. Garbage-collect shared data.
.TP
\fB--stack-growth\fR:
\fBEXPERIMENTAL\fR. Perform stack growth checks.
.SH "BUGS"
See \fBhttps://github.com/graydon/rust/issues\fR for a list of known bugs.
.SH "AUTHOR"
See \fBAUTHORS.txt\fR in the rust source distribution. Graydon Hoare
<\fIgraydon@mozilla.com\fR> is the project leader.
.SH "COPYRIGHT"
See \fBLICENSE.txt\fR in the rust source distribution.