summaryrefslogtreecommitdiffstats
path: root/src/doc/man/rustc.1
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
commit698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch)
tree173a775858bd501c378080a10dca74132f05bc50 /src/doc/man/rustc.1
parentInitial commit. (diff)
downloadrustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz
rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/doc/man/rustc.1')
-rw-r--r--src/doc/man/rustc.1314
1 files changed, 314 insertions, 0 deletions
diff --git a/src/doc/man/rustc.1 b/src/doc/man/rustc.1
new file mode 100644
index 000000000..534af3f85
--- /dev/null
+++ b/src/doc/man/rustc.1
@@ -0,0 +1,314 @@
+.TH RUSTC "1" "April 2019" "rustc <INSERT VERSION HERE>" "User Commands"
+.SH NAME
+rustc \- The Rust compiler
+.SH SYNOPSIS
+.B rustc
+[\fIOPTIONS\fR] \fIINPUT\fR
+
+.SH DESCRIPTION
+This program is a compiler for the Rust language, available at https://www.rust\-lang.org.
+
+.SH OPTIONS
+
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Display the help message.
+.TP
+\fB\-\-cfg\fR \fISPEC\fR
+Configure the compilation environment.
+.TP
+\fB\-L\fR [\fIKIND\fR=]\fIPATH\fR
+Add a directory to the library search path.
+The optional \fIKIND\fR can be one of:
+.RS
+.TP
+\fBdependency\fR
+only lookup transitive dependencies here
+.TP
+.B crate
+only lookup local `extern crate` directives here
+.TP
+.B native
+only lookup native libraries here
+.TP
+.B framework
+only look for OSX frameworks here
+.TP
+.B all
+look for anything here (the default)
+.RE
+.TP
+\fB\-l\fR [\fIKIND\fR=]\fINAME\fR
+Link the generated crate(s) to the specified library \fINAME\fR.
+The optional \fIKIND\fR can be one of \fIstatic\fR, \fIdylib\fR, or
+\fIframework\fR.
+If omitted, \fIdylib\fR is assumed.
+.TP
+\fB\-\-crate\-type\fR [bin|lib|rlib|dylib|cdylib|staticlib|proc\-macro]
+Comma separated list of types of crates for the compiler to emit.
+.TP
+\fB\-\-crate\-name\fR \fINAME\fR
+Specify the name of the crate being built.
+.TP
+\fB\-\-emit\fR [asm|llvm\-bc|llvm\-ir|obj|metadata|link|dep\-info|mir][=\fIPATH\fR]
+Configure the output that \fBrustc\fR will produce. Each emission may also have
+an optional explicit output \fIPATH\fR specified for that particular emission
+kind. This path takes precedence over the \fB-o\fR option.
+.TP
+\fB\-\-print\fR [crate\-name|\:file\-names|\:sysroot|\:target\-libdir|\:cfg|\:target\-list|\:target\-cpus|\:target\-features|\:relocation\-models|\:code\-models|\:tls\-models|\:target\-spec\-json|\:native\-static\-libs|\:stack\-protector\-strategies|\:link\-args]
+Comma separated list of compiler information to print on stdout.
+.TP
+\fB\-g\fR
+Equivalent to \fI\-C\ debuginfo=2\fR.
+.TP
+\fB\-O\fR
+Equivalent to \fI\-C\ opt\-level=2\fR.
+.TP
+\fB\-o\fR \fIFILENAME\fR
+Write output to \fIFILENAME\fR. Ignored if multiple \fI\-\-emit\fR outputs are specified which
+don't have an explicit path otherwise.
+.TP
+\fB\-\-out\-dir\fR \fIDIR\fR
+Write output to compiler\[hy]chosen filename in \fIDIR\fR. Ignored if \fI\-o\fR is specified.
+Defaults to the current directory.
+.TP
+\fB\-\-explain\fR \fIOPT\fR
+Provide a detailed explanation of an error message.
+.TP
+\fB\-\-test\fR
+Build a test harness.
+.TP
+\fB\-\-target\fR \fITARGET\fR
+Target triple for which the code is compiled. This option defaults to the host’s target
+triple. The target triple has the general format <arch><sub>\-<vendor>\-<sys>\-<abi>, where:
+.RS
+.TP
+.B <arch>
+x86, arm, thumb, mips, etc.
+.TP
+.B <sub>
+for example on ARM: v5, v6m, v7a, v7m, etc.
+.TP
+.B <vendor>
+pc, apple, nvidia, ibm, etc.
+.TP
+.B <sys>
+none, linux, win32, darwin, cuda, etc.
+.TP
+.B <abi>
+eabi, gnu, android, macho, elf, etc.
+.RE
+.TP
+\fB\-W help\fR
+Print 'lint' options and default settings.
+.TP
+\fB\-W\fR \fIOPT\fR, \fB\-\-warn\fR \fIOPT\fR
+Set lint warnings.
+.TP
+\fB\-A\fR \fIOPT\fR, \fB\-\-allow\fR \fIOPT\fR
+Set lint allowed.
+.TP
+\fB\-D\fR \fIOPT\fR, \fB\-\-deny\fR \fIOPT\fR
+Set lint denied.
+.TP
+\fB\-F\fR \fIOPT\fR, \fB\-\-forbid\fR \fIOPT\fR
+Set lint forbidden.
+.TP
+\fB\-C\fR \fIFLAG\fR[=\fIVAL\fR], \fB\-\-codegen\fR \fIFLAG\fR[=\fIVAL\fR]
+Set a codegen\[hy]related flag to the value specified.
+Use \fI\-C help\fR to print available flags.
+See CODEGEN OPTIONS below.
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+Print version info and exit.
+.TP
+\fB\-v\fR, \fB\-\-verbose\fR
+Use verbose output.
+.TP
+\fB\-\-remap\-path\-prefix\fR \fIfrom\fR=\fIto\fR
+Remap source path prefixes in all output, including compiler diagnostics, debug information,
+macro expansions, etc. The \fIfrom\fR=\fIto\fR parameter is scanned from right to left, so \fIfrom\fR
+may contain '=', but \fIto\fR may not.
+
+This is useful for normalizing build products, for example by removing the current directory out of
+pathnames emitted into the object files. The replacement is purely textual, with no consideration of
+the current system's pathname syntax. For example \fI\-\-remap\-path\-prefix foo=bar\fR will
+match \fBfoo/lib.rs\fR but not \fB./foo/lib.rs\fR.
+.TP
+\fB\-\-extern\fR \fINAME\fR=\fIPATH\fR
+Specify where an external rust library is located. These should match
+\fIextern\fR declarations in the crate's source code.
+.TP
+\fB\-\-sysroot\fR \fIPATH\fR
+Override the system root.
+.TP
+\fB\-Z\fR \fIFLAG\fR
+Set unstable / perma-unstable options.
+Use \fI\-Z help\fR to print available options.
+.TP
+\fB\-\-color\fR auto|always|never
+Configure coloring of output:
+.RS
+.TP
+.B auto
+colorize, if output goes to a tty (default);
+.TP
+.B always
+always colorize output;
+.TP
+.B never
+never colorize output.
+.RE
+
+.SH CODEGEN OPTIONS
+
+.TP
+\fBlinker\fR=\fI/path/to/cc\fR
+Path to the linker utility to use when linking libraries, executables, and
+objects.
+.TP
+\fBlink\-args\fR='\fI\-flag1 \-flag2\fR'
+A space\[hy]separated list of extra arguments to pass to the linker when the linker
+is invoked.
+.TP
+\fBlto\fR
+Perform LLVM link\[hy]time optimizations.
+.TP
+\fBtarget\-cpu\fR=\fIhelp\fR
+Selects a target processor.
+If the value is 'help', then a list of available CPUs is printed.
+.TP
+\fBtarget\-feature\fR='\fI+feature1\fR,\fI\-feature2\fR'
+A comma\[hy]separated list of features to enable or disable for the target.
+A preceding '+' enables a feature while a preceding '\-' disables it.
+Available features can be discovered through \fIllc -mcpu=help\fR.
+.TP
+\fBpasses\fR=\fIval\fR
+A space\[hy]separated list of extra LLVM passes to run.
+A value of 'list' will cause \fBrustc\fR to print all known passes and
+exit.
+The passes specified are appended at the end of the normal pass manager.
+.TP
+\fBllvm\-args\fR='\fI\-arg1\fR \fI\-arg2\fR'
+A space\[hy]separated list of arguments to pass through to LLVM.
+.TP
+\fBsave\-temps\fR
+If specified, the compiler will save more files (.bc, .o, .no\-opt.bc) generated
+throughout compilation in the output directory.
+.TP
+\fBrpath\fR
+If specified, then the rpath value for dynamic libraries will be set in
+either dynamic library or executable outputs.
+.TP
+\fBno\-prepopulate\-passes\fR
+Suppresses pre\[hy]population of the LLVM pass manager that is run over the module.
+.TP
+\fBno\-vectorize\-loops\fR
+Suppresses running the loop vectorization LLVM pass, regardless of optimization
+level.
+.TP
+\fBno\-vectorize\-slp\fR
+Suppresses running the LLVM SLP vectorization pass, regardless of optimization
+level.
+.TP
+\fBsoft\-float\fR
+Generates software floating point library calls instead of hardware
+instructions.
+.TP
+\fBprefer\-dynamic\fR
+Prefers dynamic linking to static linking.
+.TP
+\fBno\-integrated\-as\fR
+Force usage of an external assembler rather than LLVM's integrated one.
+.TP
+\fBno\-redzone\fR
+Disable the use of the redzone.
+.TP
+\fBrelocation\-model\fR=[pic,static,dynamic\-no\-pic]
+The relocation model to use.
+(Default: \fIpic\fR)
+.TP
+\fBcode\-model\fR=[small,kernel,medium,large]
+Choose the code model to use.
+.TP
+\fBmetadata\fR=\fIval\fR
+Metadata to mangle symbol names with.
+.TP
+\fBextra\-filename\fR=\fIval\fR
+Extra data to put in each output filename.
+.TP
+\fBcodegen\-units\fR=\fIn\fR
+Divide crate into \fIn\fR units to optimize in parallel.
+.TP
+\fBremark\fR=\fIval\fR
+Print remarks for these optimization passes (space separated, or "all").
+.TP
+\fBno\-stack\-check\fR
+Disable checks for stack exhaustion (a memory\[hy]safety hazard!).
+.TP
+\fBdebuginfo\fR=\fIval\fR
+Debug info emission level:
+.RS
+.TP
+.B 0
+no debug info;
+.TP
+.B 1
+line\[hy]tables only (for stacktraces and breakpoints);
+.TP
+.B 2
+full debug info with variable and type information.
+.RE
+.TP
+\fBopt\-level\fR=\fIVAL\fR
+Optimize with possible levels 0\[en]3, s (optimize for size), or z (for minimal size)
+
+.SH ENVIRONMENT
+
+Some of these affect only test harness programs (generated via rustc --test);
+others affect all programs which link to the Rust standard library.
+
+.TP
+\fBRUST_TEST_THREADS\fR
+The test framework Rust provides executes tests in parallel. This variable sets
+the maximum number of threads used for this purpose. This setting is overridden
+by the --test-threads option.
+
+.TP
+\fBRUST_TEST_NOCAPTURE\fR
+If set to a value other than "0", a synonym for the --nocapture flag.
+
+.TP
+\fBRUST_MIN_STACK\fR
+Sets the minimum stack size for new threads.
+
+.TP
+\fBRUST_BACKTRACE\fR
+If set to a value different than "0", produces a backtrace in the output of a program which panics.
+
+.SH "EXAMPLES"
+To build an executable from a source file with a main function:
+ $ rustc \-o hello hello.rs
+
+To build a library from a source file:
+ $ rustc \-\-crate\-type=lib hello\-lib.rs
+
+To build either with a crate (.rs) file:
+ $ rustc hello.rs
+
+To build an executable with debug info:
+ $ rustc \-g \-o hello hello.rs
+
+.SH "SEE ALSO"
+
+.BR rustdoc (1)
+
+.SH "BUGS"
+See https://github.com/rust\-lang/rust/issues for issues.
+
+.SH "AUTHOR"
+See https://github.com/rust\-lang/rust/graphs/contributors or use `git log --all --format='%cN <%cE>' | sort -u` in the rust source distribution.
+
+.SH "COPYRIGHT"
+This work is dual\[hy]licensed under Apache\ 2.0 and MIT terms.
+See \fICOPYRIGHT\fR file in the rust source distribution.