source: general/prog/rust.xml@ 4a2c778

10.1 11.0 ken/refactor-virt lazarus qt5new trunk upgradedb xry111/git-date xry111/git-date-for-trunk xry111/git-date-test
Last change on this file since 4a2c778 was 4a2c778, checked in by Bruce Dubbs <bdubbs@…>, 11 months ago

Tag perl modules and some other programming apps

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@24249 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 26.8 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY rust-download-http "https://static.rust-lang.org/dist/rustc-&rust-version;-src.tar.gz">
8 <!ENTITY rust-download-ftp " ">
9 <!ENTITY rust-md5sum "a460bed79b92f6a7833ba6e6390ee6ae">
10 <!ENTITY rust-size "145 MB">
11 <!-- Gentle Reminder: buildsize is how much the user requires for the real
12 install, i.e. the source with its DESTDIR *plus* the DESTDIR. You
13 can 'mkdir /tmp/RUST ; cp -a install/* /tmp/RUST' and then run 'du -sch'
14 to measure it, or du -sm to look at the size of the build tree before and
15 after the tests. -->
16
17 <!ENTITY rust-buildsize "7.6 GB (369 MB installed) including 294 MB of ~/.cargo files for the user building this. Add 3.3 GB if running the tests">
18 <!ENTITY rust-time "39 SBU (add 31 SBU for tests, both on a 4-core machine)">
19]>
20
21<sect1 id="rust" xreflabel="rustc-&rust-version;">
22 <?dbhtml filename="rust.html"?>
23
24 <sect1info>
25 <othername>$LastChangedBy$</othername>
26 <date>$Date$</date>
27 </sect1info>
28
29 <title>Rustc-&rust-version;</title>
30
31 <indexterm zone="rust">
32 <primary sortas="a-rust">Rust</primary>
33 </indexterm>
34
35 <sect2 role="package">
36 <title>Introduction to Rust</title>
37
38 <para>
39 The <application>Rust</application> programming language is designed
40 to be a safe, concurrent, practical language.
41 </para>
42
43 <para>
44 This package is updated on a six-weekly release cycle. Because it is
45 such a large and slow package to build, is at the moment only required
46 by a few packages in this book, and particularly because newer versions
47 tend to break older mozilla packages, the BLFS editors take the view that
48 it should only be updated when that is necessary (either to fix problems,
49 or to allow a new version of a package to build).
50 </para>
51
52 <para>
53 As with many other programming languages, rustc (the rust compiler)
54 needs a binary from which to bootstrap. It will download a stage0 binary
55 and many cargo crates (these are actually .tar.gz source archives) at
56 the start of the build, so you cannot compile it without an internet
57 connection.
58 </para>
59
60 <para>
61 These crates will then remain in various forms (cache, directories of
62 extracted source), in <filename class="directory">~/.cargo</filename> for
63 ever more. It is common for large <application>rust</application> packages
64 to use multiple versions of some crates. If you purge the files before
65 updating this package, very few crates will need to be updated by the
66 packages in this book which use it (and they will be downloaded as
67 required). But if you retain an older version as a fallback option and
68 then use it (when <emphasis>not</emphasis> building in
69 <filename class="directory">/usr</filename>), it is likely that it will
70 then have to re-download some crates. For a full download (i.e. starting
71 with an empty or missing <filename class="directory">~/.cargo</filename>)
72 downloading the external cargo files for this version only takes a minute
73 or so on a fast network.
74 </para>
75
76 <note>
77 <para>
78 Although BLFS usually installs in <filename
79 class="directory">/usr</filename>, when you later upgrade to a newer
80 version of <application>rust</application> the old libraries in <filename
81 class="directory">/usr/lib/rustlib</filename> will remain, with various
82 hashes in their names, but will not be usable and will waste space. The
83 editors recommend placing the files in the <filename
84 class="directory">/opt</filename> directory. In particular, if you
85 have reason to rebuild with a modified configuration (e.g. using the
86 shipped LLVM after building with shared LLVM, or for the
87 reverse situation) it is possible for the install to leave a broken
88 <command>cargo</command> program. In such a situation, either remove
89 the existing installation first, or use a different prefix such as
90 /opt/rustc-&rust-version;-build2.
91 </para>
92
93 <para>
94 If you prefer, you can of course change the prefix to <filename
95 class="directory">/usr</filename> and omit the
96 <command>ldconfig</command> and the actions to add rustc to the PATH.
97 </para>
98 </note>
99
100 <para>
101 The current <application>rustbuild</application> build-system will use
102 all processors, although it does not scale well and often falls
103 back to just using one core while waiting for a library to compile.
104 However it can be mostly limited to a specified number of processors by
105 a combination of adding the switch <literal>--jobs &lt;N&gt;</literal>
106 (e.g. '--jobs 4' to limit to 4 processors) on each invocation of
107 <command>python3 ./x.py</command> <emphasis>and</emphasis> using an
108 environment variable <envar>CARGO_BUILD_JOBS=&lt;N&gt;</envar>. At the
109 moment this is not effective when some of the rustc tests are run.
110 </para>
111
112 <para>
113 The current version of rust's num_cpus crate now recognizes that cgroups
114 can be used to restrict which processors it is allowed to use. So if your
115 machine lacks DRAM (typically, less than 2GB DRAM per core) that might be
116 an alternative to taking CPUs offline.
117 <phrase revision="sysv">In sysv systems cgroups requires <ulink
118 url="https://sourceforge.net/projects/libcg/">libcgroup</ulink>.</phrase>
119 <phrase revision="systemd">That can apparently be achieved by writing
120 custom unit files.</phrase>
121 </para>
122
123 <para>
124 At the moment <application>Rust</application> does not provide any
125 guarantees of a stable ABI.
126 </para>
127
128 <note>
129 <para>
130 Rustc defaults to building for ALL supported architectures, using a
131 shipped copy of LLVM. In BLFS the build is only for the X86
132 architecture.
133 If you intend to develop rust crates, this build may not be good
134 enough for your purposes.
135 </para>
136 <para>
137 The build times of this version when repeated on the same machine are
138 often reasonably consistent, but as with all compilations using
139 <command>rustc</command> there can be some very slow outliers.
140 </para>
141 <para>
142 Unusually, a DESTDIR-style method is being used to install this package.
143 This is because running the install as root not only downloads all of the
144 cargo files again (to <filename>/root/.cargo</filename>), it then spends
145 a very long time recompiling. Using this method saves a lot of time, at
146 the cost of extra disk space.
147 </para>
148 </note>
149
150 &lfs101_checked;
151
152 <bridgehead renderas="sect3">Package Information</bridgehead>
153 <itemizedlist spacing="compact">
154 <listitem>
155 <para>
156 Download (HTTP): <ulink url="&rust-download-http;"/>
157 </para>
158 </listitem>
159 <listitem>
160 <para>
161 Download (FTP): <ulink url="&rust-download-ftp;"/>
162 </para>
163 </listitem>
164 <listitem>
165 <para>
166 Download MD5 sum: &rust-md5sum;
167 </para>
168 </listitem>
169 <listitem>
170 <para>
171 Download size: &rust-size;
172 </para>
173 </listitem>
174 <listitem>
175 <para>
176 Estimated disk space required: &rust-buildsize;
177 </para>
178 </listitem>
179 <listitem>
180 <para>
181 Estimated build time: &rust-time;
182 </para>
183 </listitem>
184 </itemizedlist>
185
186<!--<bridgehead renderas="sect3">Additional Downloads</bridgehead>
187 <itemizedlist spacing="compact">
188 <listitem>
189 <para>
190 Required patch:
191 <ulink url="&patch-root;/rustc-&rust-version;-llvm9_fixes-1.patch"/>
192 </para>
193 </listitem>
194 </itemizedlist>-->
195
196 <bridgehead renderas="sect3">Rust Dependencies</bridgehead>
197
198 <bridgehead renderas="sect4">Required</bridgehead>
199 <para role="required">
200 <xref linkend="curl"/>,
201 <xref linkend="cmake"/>, and
202 <xref linkend="libssh2"/>
203 </para>
204
205 <bridgehead renderas="sect4">Recommended</bridgehead>
206 <para role="recommended">
207 <package>clang</package> from <xref linkend="llvm"/>
208 (built with -DLLVM_LINK_LLVM_DYLIB=ON so that rust can link to
209 system LLVM instead of building its shipped version)
210 If using an older version, see the config.toml file below re
211 using the shipped llvm, because of rust issue 69225.
212 </para>
213
214 <bridgehead renderas="sect4">Optional</bridgehead>
215 <para role="optional">
216 <xref linkend="gdb"/> (used by the testsuite if it is present)
217 </para>
218
219 <para condition="html" role="usernotes">
220 User Notes: <ulink url="&blfs-wiki;/rust"/>
221 </para>
222 </sect2>
223
224 <sect2 role="installation">
225 <title>Installation of Rust</title>
226
227 <para>
228 To install into the
229 <filename class="directory">/opt</filename> directory, remove the symlink
230 and create a new directory (i.e. with a different name if trying a
231 modified build).
232 As the <systemitem class="username">root</systemitem>
233 user:
234 </para>
235
236<screen role="root"><userinput>mkdir /opt/rustc-&rust-version; &amp;&amp;
237ln -svfin rustc-&rust-version; /opt/rustc</userinput></screen>
238
239 <note>
240 <para>
241 If multiple versions of <application>Rust</application> are installed
242 in <filename class="directory">/opt</filename>, changing to another
243 version only requires changing the <filename> /opt/rustc</filename>
244 symbolic link and then running <command>ldconfig</command>.
245 </para>
246 </note>
247
248 <para>
249 Create a suitable <filename>config.toml</filename> file which will
250 configure the build.
251 </para>
252
253<screen><userinput>cat &lt;&lt; EOF &gt; config.toml
254<literal># see config.toml.example for more possible options
255# See the 8.4 book for an example using shipped LLVM
256# e.g. if not installing clang, or using a version before 10.0
257[llvm]
258# by default, rust will build for a myriad of architectures
259targets = "X86"
260
261# When using system llvm prefer shared libraries
262link-shared = true
263
264[build]
265# omit docs to save time and space (default is to build them)
266docs = false
267
268# install cargo as well as rust
269extended = true
270
271[install]
272prefix = "/opt/rustc-&rust-version;"
273docdir = "share/doc/rustc-&rust-version;"
274
275[rust]
276channel = "stable"
277rpath = false
278
279# BLFS does not install the FileCheck executable from llvm,
280# so disable codegen tests
281codegen-tests = false
282
283[target.x86_64-unknown-linux-gnu]
284# NB the output of llvm-config (i.e. help options) may be
285# dumped to the screen when config.toml is parsed.
286llvm-config = "/usr/bin/llvm-config"
287
288[target.i686-unknown-linux-gnu]
289# NB the output of llvm-config (i.e. help options) may be
290# dumped to the screen when config.toml is parsed.
291llvm-config = "/usr/bin/llvm-config"
292
293</literal>
294EOF</userinput></screen>
295
296<!--<para>
297 Adapt rustc to allow it to build and function with the changes in LLVM-9:
298 </para>
299
300<screen><userinput remap="pre">patch -Np1 -i ../rustc-&rust-version;-llvm9_fixes-1.patch</userinput></screen>-->
301
302 <para>
303 Compile <application>Rust</application> by running the following
304 commands:
305 </para>
306
307<screen><userinput>export RUSTFLAGS="$RUSTFLAGS -C link-args=-lffi" &amp;&amp;
308python3 ./x.py build --exclude src/tools/miri</userinput></screen>
309
310 <note>
311 <para>
312 The testsuite will generate some messages in the
313 <phrase revision="sysv">system log</phrase>
314 <phrase revision="systemd">systemd journal</phrase>
315 for traps on invalid opcodes, and for segmentation faults.
316 In themselves these are nothing to worry about, just a way for the
317 test to be terminated.
318 </para>
319 </note>
320
321 <para>
322 To run the tests issue <command>python3 ./x.py test --verbose
323 --no-fail-fast | tee rustc-testlog</command>: as with the build, that
324 will use all available CPUs.
325 </para>
326
327 <para>
328 At a minimum, two tests (run-make-fulldeps/long-linker-command-lines
329 and run-make-fulldeps/sysroot-crates-are-unstable) may fail.
330 If a version of <command>gdb</command> which was released after this
331 version of rust is used, such as <xref linkend="gdb"/>, four more failures
332 (debuginfo/extern-c-fn.rs, debuginfo/generator-objects.rs,
333 debuginfo/issue-57822.rs, debuginfo/pretty-huge-vec.rs) can be expected.
334 </para>
335
336 <para>
337 As with all large testsuites, other tests might fail on some machines -
338 if the number of additional failures is in the single digits,
339 check the log for 'FAILED' and review lines above that, particularly the
340 'stderr:' lines. Any mention of
341 SIGSEGV or signal 11 in a failing test is a cause for concern.
342 </para>
343
344 <para>
345 If you get any <emphasis>other</emphasis> failing test which reports an
346 issue number then you should search for that issue. For example, when
347 rustc &gt;= 1.41.1 was built with a version of sysllvm before 10.0 the test
348 for issue 69225 failed <ulink
349 url="https://github.com/rust-lang/rust/issues/69225"/> and that should be
350 regarded as a critical failure (they released 1.41.1 because of it).
351 Most other failures will not be critical.
352 </para>
353
354 <para>
355 Therefore, you should determine the number of failures.
356 </para>
357
358<!--
359 The total number
360 of tests varies depending on which dependencies are present, e.g. more
361 will be run if <command>gdb</command> is available. If you wish, the
362 total number which were considered can be found if you run:
363 </para>
364
365<screen remap="test"><userinput>egrep 'running [[:digit:]]+ test' rustc-testlog | awk '{ sum += $2 } END { print sum }'</userinput></screen>-->
366
367 <para>
368 The number of tests which failed can be found by running:
369 </para>
370
371<screen remap="test"><userinput>grep '^test result:' rustc-testlog | awk '{ sum += $6 } END { print sum }'</userinput></screen>
372
373 <para>
374 And similarly if you care about how many tests passed use $4, for those
375 which were ignored (i.e. skipped) use $8 (and $10 for 'measured', $12 for
376 'filtered out' but both are probably zero).
377 </para>
378
379 <para>
380 Still as your normal user, do a DESTDIR install:
381 </para>
382
383<screen><userinput>export LIBSSH2_SYS_USE_PKG_CONFIG=1 &amp;&amp;
384DESTDIR=${PWD}/install python3 ./x.py install &amp;&amp;
385unset LIBSSH2_SYS_USE_PKG_CONFIG</userinput></screen>
386
387 <para>
388 Now, as the <systemitem class="username">root</systemitem> user
389 install the files from the DESTDIR:
390 </para>
391
392<screen role="root"><userinput>chown -R root:root install &amp;&amp;
393cp -a install/* /</userinput></screen>
394
395 </sect2>
396
397 <sect2 role="commands">
398 <title>Command Explanations</title>
399
400 <para>
401 <command>ln -svfn rustc-&rust-version; /opt/rustc</command>: if this is
402 not the first use of the <filename class="directory">/opt/rustc</filename>
403 symlink, overwrite it by forcing, and use the '-n' flag to avoid getting
404 confusing results from e.g. <command>ls -l</command>.
405 </para>
406
407 <para>
408 <command>targets = "X86"</command>: this avoids building all the available
409 linux cross-compilers (Aarch64, MIPS, PowerPC, SystemZ, etc). Unfortunately,
410 rust insists on installing source files for these below
411 <filename class="directory">/opt/rustc/lib/src</filename>.
412 </para>
413
414 <para>
415 <command>extended = true</command>: this installs Cargo alongside Rust.
416 </para>
417
418 <para>
419 <command>channel = "stable"</command>: this ensures only stable features
420 can be used, the default in <filename>config.toml</filename> is to use
421 development features, which is not appropriate for a released version.
422 </para>
423
424 <para>
425 <command>rpath = false</command>: by default, <command>rust</command> can
426 be run from where it was built, without being installed. That adds DT_RPATH
427 entries to all of the ELF files, which produces very messy output from
428 <command>ldd</command>, showing the libraries in the place they were built,
429 even if they have been deleted from there after the install.
430 </para>
431
432 <!-- comment while using shipped LLVM -->
433 <para>
434 <command>[target.x86_64-unknown-linux-gnu]</command>: the syntax of
435 <filename>config.toml</filename> requires an <literal>llvm-config</literal>
436 entry for each target for which system-llvm is to be used. Change the target
437 to <literal>[target.i686-unknown-linux-gnu]</literal> if you are building
438 on 32-bit x86. This whole section may be omitted if you wish to build
439 against the shipped llvm, or do not have clang, but the resulting build will
440 be larger and take longer.
441 </para>
442
443 <para>
444 <command>export RUSTFLAGS="$RUSTFLAGS -C link-args=-lffi"</command>:
445 This adds a link to libffi to any RUSTFLAGS you may already be passing
446 to the build. On some systems, linking fails to include libffi unless
447 this is used. The reason why this is needed is not clear.
448 </para>
449
450 <para>
451 <command>--exclude src/tools/miri</command>: For a long time, the miri
452 crate (an interpreter for the Midlevel Intermediate Representation)
453 has failed to build on releases. It is optional, but the failure
454 messages can persuade people that the whole build failed. However,
455 although it is not built in the main compile, with rustc-1.35.0 it
456 now got compiled during the install, but it was broken in that version.
457 <!-- might be unbroken in 1.36.0, if so remove broken from description
458 of miri below. https://github.com/rust-lang/rust/issues/61830 -->
459 Omitting it should save a little time.
460 </para>
461
462 <para>
463 <command>--verbose</command>: this switch can sometimes provide more
464 information about a test which fails.
465 </para>
466
467 <para>
468 <command>--no-fail-fast</command>: this switch ensures that the testsuite
469 will not stop at the first error.
470 </para>
471
472 <para>
473 <command>export LIBSSH2_SYS_USE_PKG_CONFIG=1</command>: On some systems,
474 cairo fails to link during the install because it cannot find libssh2.
475 This seems to fix it, but again the reason why the problem occurs is not
476 understood.
477 </para>
478
479 <para>
480 <command>DESTDIR=${PWD}/install python3 ./x.py install</command>: This
481 effects a DESTDIR-style install in the source tree,creating an <filename
482 class="directory">install</filename> directory. Note that DESTDIR installs
483 need an absolute path, passing 'install' will not work.
484 </para>
485
486 <para>
487 <command>chown -R root:root install</command>: the DESTDIR install
488 was run by a regular user, who owns the files. For security, change their
489 owner before doing a simple copy to install them.
490 </para>
491
492 </sect2>
493
494 <sect2 role="configuration">
495 <title>Configuring Rust</title>
496
497 <sect3 id="rustc-config">
498 <title>Configuration Information</title>
499
500 <para>
501 If you installed <application>rustc</application> in
502 <filename class="directory">/opt</filename>, you need to update the
503 following configuration files so that <application>rustc</application>
504 is correctly found by other packages and system processes.
505 </para>
506
507 <para>
508 As the <systemitem class="username">root</systemitem> user, update
509 the <filename>/etc/ld.so.conf</filename> file and the dynamic linker's
510 run-time cache file:
511 </para>
512
513<screen role="root"><userinput>cat &gt;&gt; /etc/ld.so.conf &lt;&lt; EOF
514<literal># Begin rustc addition
515
516/opt/rustc/lib
517
518# End rustc addition</literal>
519EOF
520
521ldconfig</userinput></screen>
522
523 <indexterm zone="rust rustc-config">
524 <primary sortas="e-etc-ld.so.conf">/etc/ld.so.conf</primary>
525 </indexterm>
526
527 <para>
528 As the <systemitem class="username">root</systemitem> user, create
529 the <filename>/etc/profile.d/rustc.sh</filename> file:
530 </para>
531
532<screen role="root"><userinput>cat &gt; /etc/profile.d/rustc.sh &lt;&lt; "EOF"
533<literal># Begin /etc/profile.d/rustc.sh
534
535pathprepend /opt/rustc/bin PATH
536
537# End /etc/profile.d/rustc.sh</literal>
538EOF</userinput></screen>
539
540 <para>
541 Immediately after installation, update the current PATH
542 for your current shell as a normal user:
543 </para>
544
545<screen><userinput>source /etc/profile.d/rustc.sh</userinput></screen>
546
547 </sect3>
548 </sect2>
549
550
551 <sect2 role="content">
552 <title>Contents</title>
553
554 <segmentedlist>
555 <segtitle>Installed Programs</segtitle>
556 <segtitle>Installed Libraries</segtitle>
557 <segtitle>Installed Directories</segtitle>
558
559 <seglistitem>
560 <seg>
561 cargo-clippy, cargo-fmt, cargo-miri, cargo, clippy-driver, miri, rls, rust-gdb, rust-gdbgui, rust-lldb, rustc, rustdoc, rustfmt.
562 </seg>
563 <seg>
564 Many lib*&lt;16-byte-hash&gt;.so libraries.
565 </seg>
566 <seg>
567 ~/.cargo,
568 /opt/rustc/lib/rustlib,
569 /opt/rustc/share/doc/rustc-&rust-version;, and
570 /opt/rustc/share/zsh/site-functions
571 </seg>
572 </seglistitem>
573 </segmentedlist>
574
575 <variablelist>
576 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
577 <?dbfo list-presentation="list"?>
578 <?dbhtml list-presentation="table"?>
579
580 <varlistentry id="cargo-clippy">
581 <term><command>cargo-clippy</command></term>
582 <listitem>
583 <para>
584 provides lint checks for a cargo package
585 </para>
586 <indexterm zone="rust cargo-clippy">
587 <primary sortas="b-cargo-clippy">cargo-clippy</primary>
588 </indexterm>
589 </listitem>
590 </varlistentry>
591
592 <varlistentry id="cargo-fmt">
593 <term><command>cargo-fmt</command></term>
594 <listitem>
595 <para>
596 formats all bin and lib files of the current crate using
597 rustfmt
598 </para>
599 <indexterm zone="rust cargo-fmt">
600 <primary sortas="b-cargo-fmt">cargo-fmt</primary>
601 </indexterm>
602 </listitem>
603 </varlistentry>
604
605 <varlistentry id="cargo-miri">
606 <term><command>cargo-miri</command></term>
607 <listitem>
608 <para>
609 <!-- FIXME reword to 'is used by' if Miri installed
610 AND works enough to report its \-\-help -->
611 is for use by Miri to interpret bin crates and tests
612 </para>
613 <indexterm zone="rust cargo-miri">
614 <primary sortas="b-cargo-miri">cargo-miri</primary>
615 </indexterm>
616 </listitem>
617 </varlistentry>
618
619 <varlistentry id="cargo">
620 <term><command>cargo</command></term>
621 <listitem>
622 <para>
623 is the Package Manager for Rust
624 </para>
625 <indexterm zone="rust cargo">
626 <primary sortas="b-cargo">cargo</primary>
627 </indexterm>
628 </listitem>
629 </varlistentry>
630
631 <varlistentry id="clippy-driver">
632 <term><command>clippy-driver</command></term>
633 <listitem>
634 <para>
635 provides lint checks for Rust
636 </para>
637 <indexterm zone="rust clippy-driver">
638 <primary sortas="b-clippy-driver">clippy-driver</primary>
639 </indexterm>
640 </listitem>
641 </varlistentry>
642
643 <varlistentry id="miri">
644 <term><command>miri</command></term>
645 <listitem>
646 <para>
647 is an interpreter for Rust's mid-level intermediate representation
648 (MIR). It is broken in this version
649 </para>
650 <indexterm zone="rust miri">
651 <primary sortas="b-miri">miri</primary>
652 </indexterm>
653 </listitem>
654 </varlistentry>
655
656 <varlistentry id="rls">
657 <term><command>rls</command></term>
658 <listitem>
659 <para>
660 is the Rust Language Server. This can run in the background to
661 provide IDEs, editors, and other tools with information about Rust
662 programs
663 </para>
664 <indexterm zone="rust rls">
665 <primary sortas="b-rls">rls</primary>
666 </indexterm>
667 </listitem>
668 </varlistentry>
669
670 <varlistentry id="rust-gdb">
671 <term><command>rust-gdb</command></term>
672 <listitem>
673 <para>
674 is a wrapper script for gdb, pulling in Python pretty-printing
675 modules installed in
676 <filename class="directory">/opt/rustc-&rust-version;/lib/rustlib/etc</filename>
677 </para>
678 <indexterm zone="rust rust-gdb">
679 <primary sortas="b-rust-gdb">rust-gdb</primary>
680 </indexterm>
681 </listitem>
682 </varlistentry>
683
684 <varlistentry id="rust-gdbgui">
685 <term><command>rust-gdbgui</command></term>
686 <listitem>
687 <para>
688 is a wrapper script for a graphical front end to gdb that runs in a
689 browser
690 </para>
691 <indexterm zone="rust rust-gdbgui">
692 <primary sortas="b-rust-gdbgui">rust-gdbgui</primary>
693 </indexterm>
694 </listitem>
695 </varlistentry>
696
697 <varlistentry id="rust-lldb">
698 <term><command>rust-lldb</command></term>
699 <listitem>
700 <para>
701 is a wrapper script for LLDB (the LLVM debugger)
702 pulling in the Python pretty-printing modules
703 </para>
704 <indexterm zone="rust rust-lldb">
705 <primary sortas="b-rust-lldb">rust=lldb</primary>
706 </indexterm>
707 </listitem>
708 </varlistentry>
709
710 <varlistentry id="rustc">
711 <term><command>rustc</command></term>
712 <listitem>
713 <para>
714 is the rust compiler
715 </para>
716 <indexterm zone="rust rustc">
717 <primary sortas="b-rustc">rustc</primary>
718 </indexterm>
719 </listitem>
720 </varlistentry>
721
722 <varlistentry id="rustdoc">
723 <term><command>rustdoc</command></term>
724 <listitem>
725 <para>
726 generates documentation from rust source code
727 </para>
728 <indexterm zone="rust rustdoc">
729 <primary sortas="b-rustdoc">rustdoc</primary>
730 </indexterm>
731 </listitem>
732 </varlistentry>
733
734 <varlistentry id="rustfmt">
735 <term><command>rustfmt</command></term>
736 <listitem>
737 <para>
738 formats rust code
739 </para>
740 <indexterm zone="rust rustfmt">
741 <primary sortas="b-rustfmt">rustfmt</primary>
742 </indexterm>
743 </listitem>
744 </varlistentry>
745
746 <varlistentry id="libstd">
747 <term><filename class="libraryfile">libstd-&lt;16-byte-hash&gt;.so</filename></term>
748 <listitem>
749 <para>
750 is the Rust Standard Library, the foundation of portable Rust software
751 </para>
752 <indexterm zone="rust libstd">
753 <primary sortas="c-libstd">libstd-&lt;16-byte-hash&gt;.so</primary>
754 </indexterm>
755 </listitem>
756 </varlistentry>
757 </variablelist>
758 </sect2>
759
760</sect1>
Note: See TracBrowser for help on using the repository browser.