Index: archive/cargo.xml
===================================================================
--- archive/cargo.xml	(revision 4c6edaca9db100af4aa24fc599dedaebbf41041a)
+++ archive/cargo.xml	(revision 4c6edaca9db100af4aa24fc599dedaebbf41041a)
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+  <!ENTITY % general-entities SYSTEM "../../general.ent">
+  %general-entities;
+
+  <!ENTITY cargo-download-http "https://github.com/rust-lang/cargo/archive/&cargo-version;/cargo-&cargo-version;.tar.gz">
+  <!ENTITY cargo-download-ftp  " ">
+  <!ENTITY cargo-md5sum        "c0bdbfdeead6a7cdfd7fbfe2183bfc61">
+  <!ENTITY cargo-size          "624 KB">
+  <!ENTITY cargo-buildsize     "129 MB plus extra 115 MB in ~/.cargo and 2.2GB for the testsuite">
+  <!ENTITY cargo-time          "1.8 SBU plus 2.4 SBU for the testsuite on a machine with 4 cores">
+
+  <!-- RUSTIDATE is deined in packages.ent -->
+  <!-- temporarily at higgs so people can download it -->
+  <!ENTITY rusti-download-http "&sources-anduin-http;/rust/rust-installer-&RUSTIDATE;.tar.xz">
+  <!ENTITY rusti-md5sum        "8fb6c87f12d735b0a8bc1304d7640c69">
+  <!ENTITY rusti-size          "18 KB">
+
+  <!-- similarly, CARGOPREV is defined in packages.ent -->
+  <!ENTITY cargoprev64-download-http "https://static.rust-lang.org/dist/cargo-&CARGOPREV;-x86_64-unknown-linux-gnu.tar.gz">
+  <!ENTITY cargoprev64-md5sum  "ad2b513d591f35271f1041e2e04f484c">
+  <!ENTITY cargoprev64-size    "4.4 MB">
+  <!ENTITY cargoprev32-download-http "https://static.rust-lang.org/dist/cargo-&CARGOPREV;-i686-unknown-linux-gnu.tar.gz">
+  <!ENTITY cargoprev32-md5sum  "24d4eda62991bfbaecb3a6d1e09df143">
+  <!ENTITY cargoprev32-size    "4.3 MB">
+]>
+
+<sect1 id="cargo" xreflabel="cargo-&cargo-version;">
+  <?dbhtml filename="cargo.html"?>
+
+  <sect1info>
+    <othername>$LastChangedBy$</othername>
+    <date>$Date$</date>
+  </sect1info>
+
+  <title>Cargo-&cargo-version;</title>
+
+  <indexterm zone="cargo">
+    <primary sortas="a-cargo">Cargo</primary>
+  </indexterm>
+
+  <sect2 role="package">
+    <title>Introduction to cargo</title>
+
+    <para>
+      <application>Cargo</application> is the Package Manager for
+      <application>Rust</application>. Like that, during the build it uses
+      <command>curl</command> to download <filename>cargo</filename> files
+      which are actually <filename>.tar.gz</filename> source archives.
+    </para>
+
+    <para>
+      This package requires internet access to build and at runtime (when
+      <command>rust</command> is compiling another package). It will use all
+      available cores. It also needs the current or previous version to compile
+      itself, so here a binary of the previous version is used to bootstrap.
+    </para>
+
+    &lfs80_checked;
+
+    <bridgehead renderas="sect3">Package Information</bridgehead>
+    <itemizedlist spacing="compact">
+      <listitem>
+        <para>
+          Download (HTTP): <ulink url="&cargo-download-http;"/>
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Download (FTP): <ulink url="&cargo-download-ftp;"/>
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Download MD5 sum: &cargo-md5sum;
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Download size: &cargo-size;
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Estimated disk space required: &cargo-buildsize;
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Estimated build time: &cargo-time;
+        </para>
+      </listitem>
+    </itemizedlist>
+
+    <bridgehead renderas="sect3">Additional Downloads</bridgehead>
+    <itemizedlist spacing="compact">
+      <listitem>
+        <para>Rust Installer:
+        <ulink url="&rusti-download-http;"/></para>
+      </listitem>
+      <listitem>
+        <para>Installer MD5 sum: &rusti-md5sum;</para>
+      </listitem>
+      <listitem>
+        <para>Installer size: &rusti-size;</para>
+      </listitem>
+    </itemizedlist>
+    <itemizedlist spacing="compact">
+      <listitem>
+        <para>Binary download (x86_64):
+        <ulink url="&cargoprev64-download-http;"/></para>
+      </listitem>
+      <listitem>
+        <para>Binary x86_64 MD5 sum: &cargoprev64-md5sum;</para>
+      </listitem>
+      <listitem>
+        <para>Binary x86_64 download size: &cargoprev64-size;</para>
+      </listitem>
+    </itemizedlist>
+    <itemizedlist spacing="compact">
+      <listitem>
+        <para>Binary download (i686):
+        <ulink url="&cargoprev32-download-http;"/></para>
+      </listitem>
+      <listitem>
+        <para>Binary i686 MD5 sum: &cargoprev32-md5sum;</para>
+      </listitem>
+      <listitem>
+        <para>Binary i686 download size: &cargoprev32-size;</para>
+      </listitem>
+    </itemizedlist>
+
+    <bridgehead renderas="sect3">Cargo Dependencies</bridgehead>
+
+    <bridgehead renderas="sect4">Required</bridgehead>
+    <para role="required">
+      <xref linkend="cmake"/>,
+      <xref linkend="rust"/>
+    </para>
+
+    <bridgehead renderas="sect4">Optional</bridgehead>
+    <para role="optional">
+      <xref linkend="git"/>,
+      <xref linkend="openssl"/>
+    </para>
+
+    <para condition="html" role="usernotes">
+      User Notes: <ulink url="&blfs-wiki;/cargo"/>
+    </para>
+  </sect2>
+
+  <sect2 role="installation">
+    <title>Installation of cargo</title>
+
+    <para>
+      Install <application>cargo</application> by running the following
+      commands:
+    </para>
+
+<screen><userinput>tar -xf ../rust-installer-&RUSTIDATE;.tar.xz \
+    --strip-components=1 --directory src/rust-installer &amp;&amp;
+
+case $(uname -m) in
+    x86_64) tar -xf ../cargo-&CARGOPREV;-x86_64-unknown-linux-gnu.tar.gz
+    ;;
+    i686) tar -xf ../cargo-&CARGOPREV;-i686-unknown-linux-gnu.tar.gz
+    ;;
+esac                                                 &amp;&amp;
+
+./configure --prefix=/usr                        \
+            --sysconfdir=/etc                    \
+            --docdir=/usr/share/doc/cargo-&cargo-version; \
+            --cargo=./cargo-nightly*/cargo/bin/cargo &amp;&amp;
+make</userinput></screen>
+
+    <para>
+      To test the results, issue: <command>CFG_DISABLE_CROSS_TESTS=1
+      ./target/*-unknown-linux-gnu/release/cargo test</command>.
+    </para>
+
+    <para>
+      Now, as the <systemitem class="username">root</systemitem> user:
+    </para>
+
+<screen role="root"><userinput>make install &amp;&amp;
+mv -v /usr/etc/bash_completion.d/cargo /etc/bash_completion.d</userinput></screen>
+  </sect2>
+
+  <sect2 role="commands">
+    <title>Command Explanations</title>
+
+    <para>
+      <command>tar -xf ../rust-installer-&RUSTIDATE;.tar.xz ...</command>:
+      The rust-installer is needed, but not shipped with
+      <application>cargo</application>, so BLFS provides a repackaged git
+      snapshot.
+    </para>
+
+    <para>
+      <parameter>--cargo=</parameter>: This points to the binary of the previous
+      version, so that the package can be bootstrapped. When upgrading, or if
+      rebuilding, it is possible to use the current installed version without
+      this switch, but that takes longer and uses more space.
+    </para>
+
+    <para>
+      <command>CFG_DISABLE_CROSS_TESTS=1 ...</command>: By default the tests
+      will try to cover cross-builds for other architectures, but BLFS only
+      installs <command>rust</command> for the host architecture. This switch
+      also points to where cargo has been created, using a wildcard to match the
+      one target-triple directory which has been created.
+    </para>
+
+    <para>
+      <command>mv -v /usr/etc/bash_completion.d/cargo ...</command>: Cargo
+      accepts the sysconfdir switch but does not respect it. This fixes up the
+      misplaced file.
+    </para>
+  </sect2>
+
+  <sect2 role="content">
+    <title>Contents</title>
+
+    <segmentedlist>
+      <segtitle>Installed Program(s)</segtitle>
+      <segtitle>Installed Librar(y,ies)</segtitle>
+      <segtitle>Installed Director(y,ies)</segtitle>
+
+      <seglistitem>
+        <seg>
+          cargo
+        </seg>
+        <seg>
+          None
+        </seg>
+        <seg>
+          /usr/share/doc/cargo-&cargo-version; and
+          /usr/share/zsh/site-functions.
+        </seg>
+      </seglistitem>
+    </segmentedlist>
+
+    <variablelist>
+      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
+      <?dbfo list-presentation="list"?>
+      <?dbhtml list-presentation="table"?>
+
+      <varlistentry id="cargo-prog">
+        <term><command>cargo</command></term>
+        <listitem>
+          <para>
+            is the Package Manager for Rust.
+          </para>
+          <indexterm zone="cargo cargo-prog">
+            <primary sortas="b-cargo">cargo</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+    </variablelist>
+  </sect2>
+</sect1>
Index: archive/llvm3.xml
===================================================================
--- archive/llvm3.xml	(revision 4c6edaca9db100af4aa24fc599dedaebbf41041a)
+++ archive/llvm3.xml	(revision 4c6edaca9db100af4aa24fc599dedaebbf41041a)
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+  <!ENTITY % general-entities SYSTEM "../../general.ent">
+  %general-entities;
+
+  <!-- for the moment, this is internally llvm-old but visibly llvm3
+   so that when rust eventually understands a less-old version the
+   visible fields, and the page itself, can be moved to that newer
+   number -->
+  <!ENTITY llvm-old-download-http "http://llvm.org/releases/&llvm-old-version;/llvm-&llvm-old-version;.src.tar.xz">
+  <!ENTITY llvm-old-download-ftp  " ">
+  <!ENTITY llvm-old-md5sum        "3259018a7437e157f3642df80f1983ea">
+  <!ENTITY llvm-old-size          "18 MB">
+  <!ENTITY llvm-old-buildsize     "663 MB (112 MB installed) plus 101 MB for the testsuite">
+  <!ENTITY llvm-old-time          "6.9 SBU (plus 1.8 SBU for the testsuite, both with parallelism=4)">
+]>
+
+<sect1 id="llvm-old" xreflabel="LLVM-&llvm-old-version;">
+  <?dbhtml filename="llvm-old.html"?>
+
+  <sect1info>
+    <othername>$LastChangedBy$</othername>
+    <date>$Date$</date>
+  </sect1info>
+
+  <title>LLVM-&llvm-old-version;</title>
+
+  <indexterm zone="llvm-old">
+    <primary sortas="a-llvm3">LLVM3</primary>
+  </indexterm>
+
+  <sect2 role="package">
+    <title>Introduction to llvm3</title>
+
+    <para>
+      This is an old version of <application>llvm</application>, installed
+      in /opt so that <xref linkend="rust"/> can use it. For normal use you
+      should install <xref linkend="llvm"/>.
+    </para>
+
+    <para>
+      This version of the <application>LLVM</application> package contains old
+      versions of the libraries, using the API which
+      <application>Rust</application> expects. Although <xref linkend="rust"/>
+      ships with a version of LLVM-3.9 and will build and link to it statically,
+      its <application>rustbuild</application> build-system will always compile
+      a large number of cross-compilers for different architectures. Using a
+      separate LLVM avoids that.
+    </para>
+
+    <para>
+      By using a separate <application>LLVM-3.9.1</application> it will be
+      possible to save time when upgrading <application>Rust</application> (the
+      overall time for the first build will be similar both with and without
+      separate <application>LLVM-3.9.1</application>).
+    </para>
+
+    &lfs80_checked;
+
+    <bridgehead renderas="sect3">Package Information</bridgehead>
+    <itemizedlist spacing="compact">
+      <listitem>
+        <para>
+          Download (HTTP): <ulink url="&llvm-old-download-http;"/>
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Download (FTP): <ulink url="&llvm-old-download-ftp;"/>
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Download MD5 sum: &llvm-old-md5sum;
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Download size: &llvm-old-size;
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Estimated disk space required: &llvm-old-buildsize;
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Estimated build time: &llvm-old-time;
+        </para>
+      </listitem>
+    </itemizedlist>
+
+    <bridgehead renderas="sect3">llvm3 Dependencies</bridgehead>
+
+    <bridgehead renderas="sect4">Required</bridgehead>
+    <para role="required">
+      <xref linkend="cmake"/>
+    </para>
+
+    <bridgehead renderas="sect4">Recommended</bridgehead>
+    <para role="recommended">
+      <xref linkend="python2"/>
+    </para>
+
+    <bridgehead renderas="sect4">Optional</bridgehead>
+    <para role="optional">
+      <xref linkend="doxygen"/>,
+      <xref linkend="graphviz"/>,
+      <xref linkend="libffi"/> (if you force this to be
+      used, the build of <xref linkend="rust"/> will need to be altered)
+      <xref linkend="libxml2"/>,
+      <xref linkend="texlive"/> (or <xref linkend="tl-installer"/>),
+      <xref linkend="valgrind"/>,
+      <xref linkend="zip"/>,
+      <ulink url="http://www.ocaml.org/">OCaml</ulink>, and
+      <ulink url="https://pypi.python.org/pypi/Sphinx">Sphinx</ulink>
+    </para>
+
+    <para condition="html" role="usernotes">
+      User Notes: <ulink url="&blfs-wiki;/llvm3"/>
+    </para>
+  </sect2>
+
+  <sect2 role="installation">
+    <title>Installation of llvm3</title>
+
+    <para>
+      Install <application>llvm3</application> by running the following
+      commands:
+    </para>
+
+<screen><userinput>mkdir -v build                           &amp;&amp;
+cd       build                           &amp;&amp;
+
+CC=gcc CXX=g++                           \
+cmake -DCMAKE_INSTALL_PREFIX=/opt/llvm3  \
+      -DCMAKE_BUILD_TYPE=Release         \
+      -DLLVM_BUILD_LLVM_DYLIB=ON         \
+      -DLLVM_LINK_LLVM_DYLIB=ON          \
+      -DLLVM_TARGETS_TO_BUILD="host"     \
+      -DLLVM_INSTALL_UTILS=ON            \
+      -Wno-dev ..                        &amp;&amp;
+make</userinput></screen>
+
+    <para>
+      To test the results, issue: <command>make check-all</command>. The tests
+      are run using the maximum number of processors/threads available, but the
+      main part of the added time is spent compiling the test programs. This
+      works fine with parallel make.
+    </para>
+
+    <para>
+      Now, as the <systemitem class="username">root</systemitem> user:
+    </para>
+
+<screen role="root"><userinput>echo "/opt/llvm3/lib" >> /etc/ld.so.conf &amp;&amp;
+make install                             &amp;&amp;
+/sbin/ldconfig                           &amp;&amp;
+ln -sfv /opt/llvm3/bin/FileCheck /usr/bin</userinput></screen>
+
+    <para>
+      Building the documentation for <emphasis>current</emphasis> LLVM is
+      covered in <xref linkend="llvm"/>, building docs for this old version
+      would be similar, but almost everyone who needs this old version will
+      also need the current version for <xref linkend="mesa"/> so it is
+      redundant to install the docs here.
+    </para>
+
+  </sect2>
+
+  <sect2 role="commands">
+    <title>Command Explanations</title>
+
+    <para>
+      <parameter>-DLLVM_INSTALL_UTILS_=ON</parameter>: This switch enables
+      the installation of old utility programs. Of those,
+      <application>rust</application> looks for <command>FileCheck</command>
+      when its configure checks for a system LLVM, the others are not used.
+    </para>
+
+    <para>
+      <parameter>/sbin/ldconfig</parameter>: This ensures the libraries can be
+      found.
+    </para>
+
+    <para>
+      <parameter>ln -sfv /opt/llvm3/bin/FileCheck /usr/bin</parameter>: This
+      ensures that FileCheck can be found by <application>rust</application>
+      even though <filename class="directory">/opt/llvm3/bin</filename> is not
+      on the PATH (having two versions of <application>LLVM</application>
+      generally available has been known to cause pain).
+    </para>
+
+  </sect2>
+
+  <sect2 role="content">
+    <title>Contents</title>
+
+    <segmentedlist>
+      <segtitle>Installed Program(s)</segtitle>
+      <segtitle>Installed Librar(y,ies)</segtitle>
+      <segtitle>Installed Director(y,ies)</segtitle>
+
+      <seglistitem>
+        <seg>
+          bugpoint, count, FileCheck,
+          llc, lli, llvm-ar, llvm-as, llvm-bcanalyzer, llvm-config, llvm-cov,
+          llvm-c-test, llvm-cxxdump, llvm-diff, llvm-dis, llvm-dsymutil,
+          llvm-dwarfdump, llvm-dwp, llvm-extract, llvm-lib (symlink to
+          llvm-ar), llvm-link, llvm-lto, llvm-mc, llvm-mcmarkup, llvm-nm,
+          llvm-objdump, llvm-pdbdump, llvm-profdata, llvm-ranlib (symlink to
+          llvm-ar), llvm-readobj, llvm-rtdyld, llvm-size, llvm-split,
+          llvm-stress, llvm-symbolizer, llvm-tblgen, not, obj2yaml, opt, sancov,
+          sanstats, verify-uselistorder, yaml-bench and yaml2obj
+        </seg>
+        <seg>
+          BugpointPasses.so,  LLVMHello.so, libLLVM.so, libLLVM*.a (50
+          libraries), libLTO.so
+        </seg>
+        <seg>
+          /opt/llvm3
+        </seg>
+      </seglistitem>
+    </segmentedlist>
+
+    <variablelist>
+      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
+      <?dbfo list-presentation="list"?>
+      <?dbhtml list-presentation="table"?>
+
+      <varlistentry id="FileCheck">
+        <term><command>FileCheck</command></term>
+        <listitem>
+          <para>
+            reads two files (one from standard input,the other specified on the
+            command line) and uses one to verify the other.
+          </para>
+          <indexterm zone="llvm-old FileCheck">
+            <primary sortas="b-FileCheck">FileCheck</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+    </variablelist>
+
+    <para>
+      For details of the other items in this package, see <xref linkend="llvm"/>.
+    </para>
+
+  </sect2>
+</sect1>
Index: general.ent
===================================================================
--- general.ent	(revision f4cb967ede9f7a1ca89a4a50dc942c998fa24e5c)
+++ general.ent	(revision 4c6edaca9db100af4aa24fc599dedaebbf41041a)
@@ -1,5 +1,5 @@
 <!-- $LastChangedBy$ $Date$ -->
 
-<!ENTITY day          "27">                   <!-- Always 2 digits -->
+<!ENTITY day          "28">                   <!-- Always 2 digits -->
 <!ENTITY month        "08">                   <!-- Always 2 digits -->
 <!ENTITY year         "2017">
@@ -7,5 +7,5 @@
 <!ENTITY copyholder   "The BLFS Development Team">
 <!ENTITY version      "&year;-&month;-&day;">
-<!ENTITY releasedate  "August 27th, &year;">
+<!ENTITY releasedate  "August 28th, &year;">
 <!ENTITY pubdate      "&year;-&month;-&day;"> <!-- metadata req. by TLDP -->
 <!ENTITY blfs-version "svn">                  <!-- svn|[release #] -->
Index: neral/prog/cargo.xml
===================================================================
--- general/prog/cargo.xml	(revision f4cb967ede9f7a1ca89a4a50dc942c998fa24e5c)
+++ 	(revision )
@@ -1,263 +1,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../../general.ent">
-  %general-entities;
-
-  <!ENTITY cargo-download-http "https://github.com/rust-lang/cargo/archive/&cargo-version;/cargo-&cargo-version;.tar.gz">
-  <!ENTITY cargo-download-ftp  " ">
-  <!ENTITY cargo-md5sum        "c0bdbfdeead6a7cdfd7fbfe2183bfc61">
-  <!ENTITY cargo-size          "624 KB">
-  <!ENTITY cargo-buildsize     "129 MB plus extra 115 MB in ~/.cargo and 2.2GB for the testsuite">
-  <!ENTITY cargo-time          "1.8 SBU plus 2.4 SBU for the testsuite on a machine with 4 cores">
-
-  <!-- RUSTIDATE is deined in packages.ent -->
-  <!-- temporarily at higgs so people can download it -->
-  <!ENTITY rusti-download-http "&sources-anduin-http;/rust/rust-installer-&RUSTIDATE;.tar.xz">
-  <!ENTITY rusti-md5sum        "8fb6c87f12d735b0a8bc1304d7640c69">
-  <!ENTITY rusti-size          "18 KB">
-
-  <!-- similarly, CARGOPREV is defined in packages.ent -->
-  <!ENTITY cargoprev64-download-http "https://static.rust-lang.org/dist/cargo-&CARGOPREV;-x86_64-unknown-linux-gnu.tar.gz">
-  <!ENTITY cargoprev64-md5sum  "ad2b513d591f35271f1041e2e04f484c">
-  <!ENTITY cargoprev64-size    "4.4 MB">
-  <!ENTITY cargoprev32-download-http "https://static.rust-lang.org/dist/cargo-&CARGOPREV;-i686-unknown-linux-gnu.tar.gz">
-  <!ENTITY cargoprev32-md5sum  "24d4eda62991bfbaecb3a6d1e09df143">
-  <!ENTITY cargoprev32-size    "4.3 MB">
-]>
-
-<sect1 id="cargo" xreflabel="cargo-&cargo-version;">
-  <?dbhtml filename="cargo.html"?>
-
-  <sect1info>
-    <othername>$LastChangedBy$</othername>
-    <date>$Date$</date>
-  </sect1info>
-
-  <title>Cargo-&cargo-version;</title>
-
-  <indexterm zone="cargo">
-    <primary sortas="a-cargo">Cargo</primary>
-  </indexterm>
-
-  <sect2 role="package">
-    <title>Introduction to cargo</title>
-
-    <para>
-      <application>Cargo</application> is the Package Manager for
-      <application>Rust</application>. Like that, during the build it uses
-      <command>curl</command> to download <filename>cargo</filename> files
-      which are actually <filename>.tar.gz</filename> source archives.
-    </para>
-
-    <para>
-      This package requires internet access to build and at runtime (when
-      <command>rust</command> is compiling another package). It will use all
-      available cores. It also needs the current or previous version to compile
-      itself, so here a binary of the previous version is used to bootstrap.
-    </para>
-
-    &lfs80_checked;
-
-    <bridgehead renderas="sect3">Package Information</bridgehead>
-    <itemizedlist spacing="compact">
-      <listitem>
-        <para>
-          Download (HTTP): <ulink url="&cargo-download-http;"/>
-        </para>
-      </listitem>
-      <listitem>
-        <para>
-          Download (FTP): <ulink url="&cargo-download-ftp;"/>
-        </para>
-      </listitem>
-      <listitem>
-        <para>
-          Download MD5 sum: &cargo-md5sum;
-        </para>
-      </listitem>
-      <listitem>
-        <para>
-          Download size: &cargo-size;
-        </para>
-      </listitem>
-      <listitem>
-        <para>
-          Estimated disk space required: &cargo-buildsize;
-        </para>
-      </listitem>
-      <listitem>
-        <para>
-          Estimated build time: &cargo-time;
-        </para>
-      </listitem>
-    </itemizedlist>
-
-    <bridgehead renderas="sect3">Additional Downloads</bridgehead>
-    <itemizedlist spacing="compact">
-      <listitem>
-        <para>Rust Installer:
-        <ulink url="&rusti-download-http;"/></para>
-      </listitem>
-      <listitem>
-        <para>Installer MD5 sum: &rusti-md5sum;</para>
-      </listitem>
-      <listitem>
-        <para>Installer size: &rusti-size;</para>
-      </listitem>
-    </itemizedlist>
-    <itemizedlist spacing="compact">
-      <listitem>
-        <para>Binary download (x86_64):
-        <ulink url="&cargoprev64-download-http;"/></para>
-      </listitem>
-      <listitem>
-        <para>Binary x86_64 MD5 sum: &cargoprev64-md5sum;</para>
-      </listitem>
-      <listitem>
-        <para>Binary x86_64 download size: &cargoprev64-size;</para>
-      </listitem>
-    </itemizedlist>
-    <itemizedlist spacing="compact">
-      <listitem>
-        <para>Binary download (i686):
-        <ulink url="&cargoprev32-download-http;"/></para>
-      </listitem>
-      <listitem>
-        <para>Binary i686 MD5 sum: &cargoprev32-md5sum;</para>
-      </listitem>
-      <listitem>
-        <para>Binary i686 download size: &cargoprev32-size;</para>
-      </listitem>
-    </itemizedlist>
-
-    <bridgehead renderas="sect3">Cargo Dependencies</bridgehead>
-
-    <bridgehead renderas="sect4">Required</bridgehead>
-    <para role="required">
-      <xref linkend="cmake"/>,
-      <xref linkend="rust"/>
-    </para>
-
-    <bridgehead renderas="sect4">Optional</bridgehead>
-    <para role="optional">
-      <xref linkend="git"/>,
-      <xref linkend="openssl"/>
-    </para>
-
-    <para condition="html" role="usernotes">
-      User Notes: <ulink url="&blfs-wiki;/cargo"/>
-    </para>
-  </sect2>
-
-  <sect2 role="installation">
-    <title>Installation of cargo</title>
-
-    <para>
-      Install <application>cargo</application> by running the following
-      commands:
-    </para>
-
-<screen><userinput>tar -xf ../rust-installer-&RUSTIDATE;.tar.xz \
-    --strip-components=1 --directory src/rust-installer &amp;&amp;
-
-case $(uname -m) in
-    x86_64) tar -xf ../cargo-&CARGOPREV;-x86_64-unknown-linux-gnu.tar.gz
-    ;;
-    i686) tar -xf ../cargo-&CARGOPREV;-i686-unknown-linux-gnu.tar.gz
-    ;;
-esac                                                 &amp;&amp;
-
-./configure --prefix=/usr                        \
-            --sysconfdir=/etc                    \
-            --docdir=/usr/share/doc/cargo-&cargo-version; \
-            --cargo=./cargo-nightly*/cargo/bin/cargo &amp;&amp;
-make</userinput></screen>
-
-    <para>
-      To test the results, issue: <command>CFG_DISABLE_CROSS_TESTS=1
-      ./target/*-unknown-linux-gnu/release/cargo test</command>.
-    </para>
-
-    <para>
-      Now, as the <systemitem class="username">root</systemitem> user:
-    </para>
-
-<screen role="root"><userinput>make install &amp;&amp;
-mv -v /usr/etc/bash_completion.d/cargo /etc/bash_completion.d</userinput></screen>
-  </sect2>
-
-  <sect2 role="commands">
-    <title>Command Explanations</title>
-
-    <para>
-      <command>tar -xf ../rust-installer-&RUSTIDATE;.tar.xz ...</command>:
-      The rust-installer is needed, but not shipped with
-      <application>cargo</application>, so BLFS provides a repackaged git
-      snapshot.
-    </para>
-
-    <para>
-      <parameter>--cargo=</parameter>: This points to the binary of the previous
-      version, so that the package can be bootstrapped. When upgrading, or if
-      rebuilding, it is possible to use the current installed version without
-      this switch, but that takes longer and uses more space.
-    </para>
-
-    <para>
-      <command>CFG_DISABLE_CROSS_TESTS=1 ...</command>: By default the tests
-      will try to cover cross-builds for other architectures, but BLFS only
-      installs <command>rust</command> for the host architecture. This switch
-      also points to where cargo has been created, using a wildcard to match the
-      one target-triple directory which has been created.
-    </para>
-
-    <para>
-      <command>mv -v /usr/etc/bash_completion.d/cargo ...</command>: Cargo
-      accepts the sysconfdir switch but does not respect it. This fixes up the
-      misplaced file.
-    </para>
-  </sect2>
-
-  <sect2 role="content">
-    <title>Contents</title>
-
-    <segmentedlist>
-      <segtitle>Installed Program(s)</segtitle>
-      <segtitle>Installed Librar(y,ies)</segtitle>
-      <segtitle>Installed Director(y,ies)</segtitle>
-
-      <seglistitem>
-        <seg>
-          cargo
-        </seg>
-        <seg>
-          None
-        </seg>
-        <seg>
-          /usr/share/doc/cargo-&cargo-version; and
-          /usr/share/zsh/site-functions.
-        </seg>
-      </seglistitem>
-    </segmentedlist>
-
-    <variablelist>
-      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
-      <?dbfo list-presentation="list"?>
-      <?dbhtml list-presentation="table"?>
-
-      <varlistentry id="cargo-prog">
-        <term><command>cargo</command></term>
-        <listitem>
-          <para>
-            is the Package Manager for Rust.
-          </para>
-          <indexterm zone="cargo cargo-prog">
-            <primary sortas="b-cargo">cargo</primary>
-          </indexterm>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-  </sect2>
-</sect1>
Index: neral/prog/llvm3.xml
===================================================================
--- general/prog/llvm3.xml	(revision f4cb967ede9f7a1ca89a4a50dc942c998fa24e5c)
+++ 	(revision )
@@ -1,253 +1,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../../general.ent">
-  %general-entities;
-
-  <!-- for the moment, this is internally llvm-old but visibly llvm3
-   so that when rust eventually understands a less-old version the
-   visible fields, and the page itself, can be moved to that newer
-   number -->
-  <!ENTITY llvm-old-download-http "http://llvm.org/releases/&llvm-old-version;/llvm-&llvm-old-version;.src.tar.xz">
-  <!ENTITY llvm-old-download-ftp  " ">
-  <!ENTITY llvm-old-md5sum        "3259018a7437e157f3642df80f1983ea">
-  <!ENTITY llvm-old-size          "18 MB">
-  <!ENTITY llvm-old-buildsize     "663 MB (112 MB installed) plus 101 MB for the testsuite">
-  <!ENTITY llvm-old-time          "6.9 SBU (plus 1.8 SBU for the testsuite, both with parallelism=4)">
-]>
-
-<sect1 id="llvm-old" xreflabel="LLVM-&llvm-old-version;">
-  <?dbhtml filename="llvm-old.html"?>
-
-  <sect1info>
-    <othername>$LastChangedBy$</othername>
-    <date>$Date$</date>
-  </sect1info>
-
-  <title>LLVM-&llvm-old-version;</title>
-
-  <indexterm zone="llvm-old">
-    <primary sortas="a-llvm3">LLVM3</primary>
-  </indexterm>
-
-  <sect2 role="package">
-    <title>Introduction to llvm3</title>
-
-    <para>
-      This is an old version of <application>llvm</application>, installed
-      in /opt so that <xref linkend="rust"/> can use it. For normal use you
-      should install <xref linkend="llvm"/>.
-    </para>
-
-    <para>
-      This version of the <application>LLVM</application> package contains old
-      versions of the libraries, using the API which
-      <application>Rust</application> expects. Although <xref linkend="rust"/>
-      ships with a version of LLVM-3.9 and will build and link to it statically,
-      its <application>rustbuild</application> build-system will always compile
-      a large number of cross-compilers for different architectures. Using a
-      separate LLVM avoids that.
-    </para>
-
-    <para>
-      By using a separate <application>LLVM-3.9.1</application> it will be
-      possible to save time when upgrading <application>Rust</application> (the
-      overall time for the first build will be similar both with and without
-      separate <application>LLVM-3.9.1</application>).
-    </para>
-
-    &lfs80_checked;
-
-    <bridgehead renderas="sect3">Package Information</bridgehead>
-    <itemizedlist spacing="compact">
-      <listitem>
-        <para>
-          Download (HTTP): <ulink url="&llvm-old-download-http;"/>
-        </para>
-      </listitem>
-      <listitem>
-        <para>
-          Download (FTP): <ulink url="&llvm-old-download-ftp;"/>
-        </para>
-      </listitem>
-      <listitem>
-        <para>
-          Download MD5 sum: &llvm-old-md5sum;
-        </para>
-      </listitem>
-      <listitem>
-        <para>
-          Download size: &llvm-old-size;
-        </para>
-      </listitem>
-      <listitem>
-        <para>
-          Estimated disk space required: &llvm-old-buildsize;
-        </para>
-      </listitem>
-      <listitem>
-        <para>
-          Estimated build time: &llvm-old-time;
-        </para>
-      </listitem>
-    </itemizedlist>
-
-    <bridgehead renderas="sect3">llvm3 Dependencies</bridgehead>
-
-    <bridgehead renderas="sect4">Required</bridgehead>
-    <para role="required">
-      <xref linkend="cmake"/>
-    </para>
-
-    <bridgehead renderas="sect4">Recommended</bridgehead>
-    <para role="recommended">
-      <xref linkend="python2"/>
-    </para>
-
-    <bridgehead renderas="sect4">Optional</bridgehead>
-    <para role="optional">
-      <xref linkend="doxygen"/>,
-      <xref linkend="graphviz"/>,
-      <xref linkend="libffi"/> (if you force this to be
-      used, the build of <xref linkend="rust"/> will need to be altered)
-      <xref linkend="libxml2"/>,
-      <xref linkend="texlive"/> (or <xref linkend="tl-installer"/>),
-      <xref linkend="valgrind"/>,
-      <xref linkend="zip"/>,
-      <ulink url="http://www.ocaml.org/">OCaml</ulink>, and
-      <ulink url="https://pypi.python.org/pypi/Sphinx">Sphinx</ulink>
-    </para>
-
-    <para condition="html" role="usernotes">
-      User Notes: <ulink url="&blfs-wiki;/llvm3"/>
-    </para>
-  </sect2>
-
-  <sect2 role="installation">
-    <title>Installation of llvm3</title>
-
-    <para>
-      Install <application>llvm3</application> by running the following
-      commands:
-    </para>
-
-<screen><userinput>mkdir -v build                           &amp;&amp;
-cd       build                           &amp;&amp;
-
-CC=gcc CXX=g++                           \
-cmake -DCMAKE_INSTALL_PREFIX=/opt/llvm3  \
-      -DCMAKE_BUILD_TYPE=Release         \
-      -DLLVM_BUILD_LLVM_DYLIB=ON         \
-      -DLLVM_LINK_LLVM_DYLIB=ON          \
-      -DLLVM_TARGETS_TO_BUILD="host"     \
-      -DLLVM_INSTALL_UTILS=ON            \
-      -Wno-dev ..                        &amp;&amp;
-make</userinput></screen>
-
-    <para>
-      To test the results, issue: <command>make check-all</command>. The tests
-      are run using the maximum number of processors/threads available, but the
-      main part of the added time is spent compiling the test programs. This
-      works fine with parallel make.
-    </para>
-
-    <para>
-      Now, as the <systemitem class="username">root</systemitem> user:
-    </para>
-
-<screen role="root"><userinput>echo "/opt/llvm3/lib" >> /etc/ld.so.conf &amp;&amp;
-make install                             &amp;&amp;
-/sbin/ldconfig                           &amp;&amp;
-ln -sfv /opt/llvm3/bin/FileCheck /usr/bin</userinput></screen>
-
-    <para>
-      Building the documentation for <emphasis>current</emphasis> LLVM is
-      covered in <xref linkend="llvm"/>, building docs for this old version
-      would be similar, but almost everyone who needs this old version will
-      also need the current version for <xref linkend="mesa"/> so it is
-      redundant to install the docs here.
-    </para>
-
-  </sect2>
-
-  <sect2 role="commands">
-    <title>Command Explanations</title>
-
-    <para>
-      <parameter>-DLLVM_INSTALL_UTILS_=ON</parameter>: This switch enables
-      the installation of old utility programs. Of those,
-      <application>rust</application> looks for <command>FileCheck</command>
-      when its configure checks for a system LLVM, the others are not used.
-    </para>
-
-    <para>
-      <parameter>/sbin/ldconfig</parameter>: This ensures the libraries can be
-      found.
-    </para>
-
-    <para>
-      <parameter>ln -sfv /opt/llvm3/bin/FileCheck /usr/bin</parameter>: This
-      ensures that FileCheck can be found by <application>rust</application>
-      even though <filename class="directory">/opt/llvm3/bin</filename> is not
-      on the PATH (having two versions of <application>LLVM</application>
-      generally available has been known to cause pain).
-    </para>
-
-  </sect2>
-
-  <sect2 role="content">
-    <title>Contents</title>
-
-    <segmentedlist>
-      <segtitle>Installed Program(s)</segtitle>
-      <segtitle>Installed Librar(y,ies)</segtitle>
-      <segtitle>Installed Director(y,ies)</segtitle>
-
-      <seglistitem>
-        <seg>
-          bugpoint, count, FileCheck,
-          llc, lli, llvm-ar, llvm-as, llvm-bcanalyzer, llvm-config, llvm-cov,
-          llvm-c-test, llvm-cxxdump, llvm-diff, llvm-dis, llvm-dsymutil,
-          llvm-dwarfdump, llvm-dwp, llvm-extract, llvm-lib (symlink to
-          llvm-ar), llvm-link, llvm-lto, llvm-mc, llvm-mcmarkup, llvm-nm,
-          llvm-objdump, llvm-pdbdump, llvm-profdata, llvm-ranlib (symlink to
-          llvm-ar), llvm-readobj, llvm-rtdyld, llvm-size, llvm-split,
-          llvm-stress, llvm-symbolizer, llvm-tblgen, not, obj2yaml, opt, sancov,
-          sanstats, verify-uselistorder, yaml-bench and yaml2obj
-        </seg>
-        <seg>
-          BugpointPasses.so,  LLVMHello.so, libLLVM.so, libLLVM*.a (50
-          libraries), libLTO.so
-        </seg>
-        <seg>
-          /opt/llvm3
-        </seg>
-      </seglistitem>
-    </segmentedlist>
-
-    <variablelist>
-      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
-      <?dbfo list-presentation="list"?>
-      <?dbhtml list-presentation="table"?>
-
-      <varlistentry id="FileCheck">
-        <term><command>FileCheck</command></term>
-        <listitem>
-          <para>
-            reads two files (one from standard input,the other specified on the
-            command line) and uses one to verify the other.
-          </para>
-          <indexterm zone="llvm-old FileCheck">
-            <primary sortas="b-FileCheck">FileCheck</primary>
-          </indexterm>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-
-    <para>
-      For details of the other items in this package, see <xref linkend="llvm"/>.
-    </para>
-
-  </sect2>
-</sect1>
Index: general/prog/prog.xml
===================================================================
--- general/prog/prog.xml	(revision f4cb967ede9f7a1ca89a4a50dc942c998fa24e5c)
+++ general/prog/prog.xml	(revision 4c6edaca9db100af4aa24fc599dedaebbf41041a)
@@ -25,5 +25,4 @@
   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="autoconf213.xml"/>
 <!--  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="bazaar.xml"/> -->
-  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="cargo.xml"/>
   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="check.xml"/>
   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="clisp.xml"/>
@@ -43,5 +42,4 @@
   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="guile.xml"/>
   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="librep.xml"/>
-  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="llvm3.xml"/>
   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="llvm.xml"/>
   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="lua.xml"/>
Index: general/prog/rust.xml
===================================================================
--- general/prog/rust.xml	(revision f4cb967ede9f7a1ca89a4a50dc942c998fa24e5c)
+++ general/prog/rust.xml	(revision 4c6edaca9db100af4aa24fc599dedaebbf41041a)
@@ -7,8 +7,8 @@
   <!ENTITY rust-download-http "https://static.rust-lang.org/dist/rustc-&rust-version;-src.tar.gz">
   <!ENTITY rust-download-ftp  "">
-  <!ENTITY rust-md5sum        "c11d94d9e62f71838b20058f0797357a">
-  <!ENTITY rust-size          "28 MB">
-  <!ENTITY rust-buildsize     "1.5 GB (208 MB installed) plus 118MB for cargo files">
-  <!ENTITY rust-time          "14 SBU (with 4 processors)">
+  <!ENTITY rust-md5sum        "75e779670ac79edf023497a9c37eb35d">
+  <!ENTITY rust-size          "48 MB">
+  <!ENTITY rust-buildsize     "4.2 GB (362 MB installed), (add 0.6GB for tests) plus 273MB for ~/.cargo files">
+  <!ENTITY rust-time          "33 SBU (add 14 SBU for tests, both with 4 processors)">
 ]>
 
@@ -51,10 +51,8 @@
     <para>
       At the moment <application>Rust</application> does not provide any
-      guarantees of a stable ABI, and it is likely that the next few versions
-      of <application>firefox</application> will each require the latest version
-      of <application>Rust</application>.
-    </para>
-
-    &lfs80_checked;
+      guarantees of a stable ABI.
+    </para>
+
+    &lfs81_checked;
 
     <bridgehead renderas="sect3">Package Information</bridgehead>
@@ -97,19 +95,11 @@
     <para role="required">
       <xref linkend="curl"/>,
-      <xref linkend="cmake"/> (if not using the recommended <xref linkend="llvm-old"/>),
+      <xref linkend="cmake"/>,
       <xref linkend="python2"/>
-    </para>
-
-    <bridgehead renderas="sect4">Recommended</bridgehead>
-    <para role="recommended">
-      <!-- acceptable versions of llvm are listed in the tests
-           of LLVM_VERSION in configure, currently 3.{7-9}*    -->
-      <xref linkend="llvm-old"/>
     </para>
 
     <bridgehead renderas="sect4">Optional</bridgehead>
     <para role="optional">
-      <xref linkend="gdb"/> (often required for the testsuite, but some of the
-      gdb tests may still fail),
+      <xref linkend="gdb"/> (used by debuginfo-gdb in the testsuite),
       <xref linkend="ninja"/>
     </para>
@@ -123,29 +113,69 @@
     <title>Installation of Rust</title>
 
-    <para>
-      Install <application>Rust</application> by running the following
+    <note>
+      <para>
+        This package is updated on a six-weekly release cycle. Because it is
+        such a large and slow package to build, and is at the moment only used
+        by one package in this book, the BLFS editors take the view that it
+        should only be updated when that is necessary.
+      </para>
+    </note>
+
+    <para>
+      First create a suitable <filename>config.toml</filename> file
+      which will configure the build :
+    </para>
+
+<screen><userinput>cat &lt;&lt;EOF &gt; config.toml
+# see src/bootstrap/config.toml.example for more possible options
+[llvm]
+targets = "X86"
+
+[build]
+# install cargo as well as rust
+extended = true
+
+[install]
+prefix = "/usr"
+docdir = "share/doc/rustc-1.19.0"
+channel = "stable"
+EOF</userinput></screen>
+
+    <para>
+      Now install <application>Rust</application> by running the following
       commands:
     </para>
 
-<screen><userinput>./configure --prefix=/usr             \
-            --llvm-root=/opt/llvm3    \
-            --enable-llvm-link-shared \
-            --docdir=/usr/share/doc/rustc-&rust-version; &amp;&amp;
-./x.py build</userinput></screen>
-
-    <para>
-      The testsuite in this package selects random subsets of the
-      possible tests.  There is no correlation between how long a
-      particular run of the testsuite takes, and how many tests
-      were run. On occasion, the chosen tests will run in much
-      less than 1.0 SBU, on other occasions they may take more
-      than 20 SBU. Although it is normal to run the testsuite for
-      a compiler, in this case that is very hard to recommend.
-    </para>
-
-    <para>
-      Nevertheless, if you insist on running the tests issue
-      <command>./x.py test</command>: as with the build, that will
-      use all available CPUs.
+<screen><userinput>./x.py build</userinput></screen>
+
+    <para>
+      To run the tests issue
+      <command>./x.py test --verbose --no-fail-fast &gt;../rustc-testlog</command>:
+      as with the build, that will use all available CPUs.  This runs maniy suites
+      of tests (in an apparently random order), three may fail:
+      compile-fail/issue-37131.rs and run-make/target-without-atomics both try to
+      compile for the thumbv6m-none-eabi target, but the BLFS build does not cater for
+      that, and all 105 tests in debuginfo-gdb will fail if
+      <application>gdb</application> has not been installed.
+    </para>
+
+    <para>
+      If you wish to look at the numbers for the results, you can find the total
+      number of tests which were considered by running:
+    </para>
+
+<screen><command>grep 'running .* tests' ../rustc-testlog | awk '{ sum += $2 } END { print sum }'</command></screen>
+
+    <para>
+      That should report 14029 tests. Similarly, the total tests which failed can
+      be found by running:
+    </para>
+
+<screen><command>grep '^test result:' ../rustc-testlog | awk  '{ sum += $6 } END { print sum }'</command></screen>
+
+    <para>
+      And similarly for the tests which passed use $4, for those which were ignored
+      (i.e. skipped) use $8 (and $10 for 'measured', $12 for 'filtered out' but both
+      are probably zero). The breakdown does not match the overall total.
     </para>
 
@@ -154,8 +184,5 @@
     </para>
 
-<screen role="root"><userinput>test -f /usr/lib/libLLVM-3.9.so ||
-  ln -sv /opt/llvm3/lib/libLLVM-3.9.so /usr/lib &amp;&amp;
-
-./x.py dist --install</userinput></screen>
+<screen role="root"><userinput>./x.py dist --install</userinput></screen>
   </sect2>
 
@@ -164,38 +191,28 @@
 
     <para>
-      <command>--llvm-root=/opt/llvm3 --enable-llvm-link-shared</command>:
-      This tells rust to use the system version of llvm3 installed in
-      <filename class="directory">/opt/llvm3</filename>, linking to the
-      shared libraries.
-    </para>
-
-    <para>
-      <option>--enable-dist-host-only</option>: If you did not install a
-      system version of <xref linkend="llvm-old"/>, use this alternative command
-      to build the shipped static version of llvm. It will
-      <emphasis>compile</emphasis> for all the available linux cross-compilers
-      (Aarch64, MIPS, PowerPC, SystemZ, etc) but with this switch it will only
-      <emphasis>install</emphasis> for the host architecture.
-    </para>
-
-    <para>
-      <option>RUSTFLAGS="$RUSTFLAGS -C link-args=-lffi"</option>: use this if
-      you need to link against a version of LLVM-3 which was compiled against
-      <xref linkend="libffi"/>.
-    </para>
-
-    <para>
-      <command>ln -sv /opt/llvm3/lib/libLLVM-3.9.so /usr/lib</command>:
-      Although the <emphasis>build</emphasis> of <application>Rust</application>
-      finds the shared library in
-      <filename class="directory">/opt/llvm3/lib</filename>, several of the steps
-      run by the <application>rustbuild</application>
-      <emphasis>installer</emphasis> do not find
-      <filename>libLLVM-3.9.so</filename>. This conditional symlink fixes that,
-      and works even if <filename>libLLVM-3.9.{0,1}</filename> has already been
-      installed in <filename class="directory">/usr</filename>.
-      <emphasis>Omit this command if you did not install a system version of
-      <xref linkend="llvm-old"/></emphasis>.
-    </para>
+      <command>targets = "X86"</command>: this avoids building all the available
+      linux cross-compilers (Aarch64, MIPS, PowerPC, SystemZ, etc).
+    </para>
+
+    <para>
+      <command>extended = true</command>: this installs Cargo alongside Rust.
+    </para>
+
+    <para>
+      <command>channel = "stable"</command>: this ensures only stable features
+      can be used, the default in <filename>config.toml</filename> is to use
+      development features, which is not appropriate for a released version.
+    </para>
+
+    <para>
+      <command>--verbose</command>: this switch can sometimes provide more
+      information about a test which fails.
+    </para>
+
+    <para>
+      <command>--no-fail-fast</command>: this switch ensures that the testsuite
+      will not stop at the first error.
+    </para>
+
   </sect2>
 
@@ -210,16 +227,14 @@
       <seglistitem>
         <seg>
-          rust-gdb, rust-lldb, rustc, rustdoc.
+          cargo, rust-gdb, rust-lldb, rustc, rustdoc.
         </seg>
         <seg>
-          Many libraries (libarena, libflate, libfmt_macros, libgetopts,
-          libgraphviz, liblog, libproc_macro, librustc*, libserialize,
-          libstd, libsyntax, libterm, libtest), all containing a hash in
-          their names.
+          Many lib*&lt;16-byte-hash&gt;.so libraries.
         </seg>
         <seg>
           ~/.cargo,
-          /usr/lib/rustlib, and
-          /usr/share/doc/rustc-&rust-version;.
+          /usr/lib/rustlib,
+          /usr/share/doc/rustc-&rust-version;, and
+          /usr/share/zsh/site-functions/
         </seg>
       </seglistitem>
@@ -231,4 +246,16 @@
       <?dbhtml list-presentation="table"?>
 
+      <varlistentry id="cargo">
+        <term><command>cargo</command></term>
+        <listitem>
+          <para>
+            is the Package Manager for Rust.
+          </para>
+          <indexterm zone="rust cargo">
+            <primary sortas="b-cargo">cargo</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
       <varlistentry id="rust-gdb">
         <term><command>rust-gdb</command></term>
Index: introduction/welcome/changelog.xml
===================================================================
--- introduction/welcome/changelog.xml	(revision f4cb967ede9f7a1ca89a4a50dc942c998fa24e5c)
+++ introduction/welcome/changelog.xml	(revision 4c6edaca9db100af4aa24fc599dedaebbf41041a)
@@ -42,4 +42,15 @@
     </listitem>
 -->
+
+    <listitem>
+      <para>August 28th, 2017</para>
+      <itemizedlist>
+        <listitem>
+          <para>[ken] - Update to rustc-1.19.0 and drop separate
+          LLVM-3 and Cargo. Fixes
+          <ulink url="&blfs-ticket-root;9652">#9652</ulink>.</para>
+        </listitem>
+      </itemizedlist>
+    </listitem>
 
     <listitem>
Index: packages.ent
===================================================================
--- packages.ent	(revision f4cb967ede9f7a1ca89a4a50dc942c998fa24e5c)
+++ packages.ent	(revision 4c6edaca9db100af4aa24fc599dedaebbf41041a)
@@ -290,8 +290,4 @@
 <!ENTITY autoconf213-version          "2.13">
 <!ENTITY bazaar-version               "2.5.1">
-<!ENTITY cargo-version                "0.17.0">
-<!-- extras for cargo install, previous version for binaries, rust installer date -->
-<!ENTITY CARGOPREV	              "0.16.0">
-<!ENTITY RUSTIDATE                    "20161004">
 <!ENTITY check-version                "0.11.0">
 <!ENTITY clisp-version                "2.49">
@@ -325,5 +321,5 @@
 <!ENTITY ruby-patch-version           "1">
 <!ENTITY ruby-version                 "&ruby-minor-version;.&ruby-patch-version;">
-<!ENTITY rust-version                 "1.16.0">
+<!ENTITY rust-version                 "1.19.0">
 <!ENTITY scons-version                "2.5.1">
 <!ENTITY slang-version                "2.3.1">
Index: xsoft/graphweb/firefox.xml
===================================================================
--- xsoft/graphweb/firefox.xml	(revision f4cb967ede9f7a1ca89a4a50dc942c998fa24e5c)
+++ xsoft/graphweb/firefox.xml	(revision 4c6edaca9db100af4aa24fc599dedaebbf41041a)
@@ -111,5 +111,4 @@
     <para role="required">
       <xref linkend="autoconf213"/>,
-      <xref linkend="cargo"/>,
       both <xref linkend="gtk3"/> and
       <xref linkend="gtk2"/>, 
@@ -119,4 +118,5 @@
       <xref linkend="alsa-lib"/> if you edit the mozconfig; 
         now deprecated by mozilla), 
+      <xref linkend="rust"/>,
       <xref linkend="unzip"/>,
       <xref linkend="yasm"/>, and
