Index: general/genlib/js78.xml
===================================================================
--- general/genlib/js78.xml	(revision a2e21eed9b6201b6d6a7f32e9dcddbb7561ace5c)
+++ general/genlib/js78.xml	(revision bf5fb9456ae29b0253a31354c84083dfe32b5e77)
@@ -11,6 +11,6 @@
   <!ENTITY js78-md5sum        "a1c8027c67d606bce0cc130a792432c0">
   <!ENTITY js78-size          "316 MB">
-  <!ENTITY js78-buildsize     "2.9 GB (36 MB installed after removing 35MB static lib)">
-  <!ENTITY js78-time          "2.4 SBU (with parallelism = 4)">
+  <!ENTITY js78-buildsize     "3.0 GB (36 MB installed after removing 35MB static lib)">
+  <!ENTITY js78-time          "2.5 SBU (with parallelism = 4)">
 ]>
 
Index: general/prog/cbindgen.xml
===================================================================
--- general/prog/cbindgen.xml	(revision a2e21eed9b6201b6d6a7f32e9dcddbb7561ace5c)
+++ general/prog/cbindgen.xml	(revision bf5fb9456ae29b0253a31354c84083dfe32b5e77)
@@ -9,6 +9,6 @@
   <!ENTITY cbindgen-md5sum        "396f97c1d79ee5307611e7d586b4b011">
   <!ENTITY cbindgen-size          "188 KB">
-  <!ENTITY cbindgen-buildsize     "100 MB (add 509 MB for tests)">
-  <!ENTITY cbindgen-time          "0.7 SBU (add 0.4 SBU for tests)">
+  <!ENTITY cbindgen-buildsize     "122 MB (add 446 MB for tests)">
+  <!ENTITY cbindgen-time          "0.8 SBU (add 0.5 SBU for tests)">
 ]>
 
Index: general/prog/llvm.xml
===================================================================
--- general/prog/llvm.xml	(revision a2e21eed9b6201b6d6a7f32e9dcddbb7561ace5c)
+++ general/prog/llvm.xml	(revision bf5fb9456ae29b0253a31354c84083dfe32b5e77)
@@ -9,16 +9,16 @@
   <!ENTITY llvm-download-http "&llvm-url;/llvm-&llvm-version;.src.tar.xz">
   <!ENTITY llvm-download-ftp  " ">
-  <!ENTITY llvm-md5sum        "71c68c526cbbf1674b5aafc5542b336c">
-  <!ENTITY llvm-size          "34 MB">
-  <!ENTITY llvm-buildsize     "2.8 GB (659 MB installed, add 16 GB for tests)">
-  <!ENTITY llvm-time          "30 SBU (with parallelism=4, add 15 SBU for tests)">
+  <!ENTITY llvm-md5sum        "85844102335b2e01b3c64b6734fb56f2">
+  <!ENTITY llvm-size          "38 MB">
+  <!ENTITY llvm-buildsize     "3.1 GB (726 MB installed, add 17 GB for tests)">
+  <!ENTITY llvm-time          "37 SBU (with parallelism=4, add 12 SBU for tests)">
 
   <!ENTITY clang-download-http "&llvm-url;/clang-&llvm-version;.src.tar.xz">
-  <!ENTITY clang-md5sum        "6c8b56f531876fd24e06257a2d8ce422">
-  <!ENTITY clang-size          "14 MB">
+  <!ENTITY clang-md5sum        "d8fbc5b1d27f44922cfbbf199d0bab78">
+  <!ENTITY clang-size          "15 MB">
 
   <!ENTITY compiler-rt-download-http "&llvm-url;/compiler-rt-&llvm-version;.src.tar.xz">
-  <!ENTITY compiler-rt-md5sum        "970835d14e9c08a68c4b2ff3931bada7">
-  <!ENTITY compiler-rt-size          "2.0 MB">
+  <!ENTITY compiler-rt-md5sum        "182511f9ba2c83b9d3c934501d48bee9">
+  <!ENTITY compiler-rt-size          "2.1 MB">
 ]>
 
@@ -163,5 +163,4 @@
       <xref linkend="graphviz"/>,
       <xref linkend="libxml2"/>,
-      <xref linkend="python2"/>,
       <xref linkend="rsync"/> (for tests),
       <xref linkend="texlive"/> (or <xref linkend="tl-installer"/>),
@@ -199,4 +198,13 @@
 <screen><userinput>tar -xf ../compiler-rt-&llvm-version;.src.tar.xz -C projects &amp;&amp;
 mv projects/compiler-rt-&llvm-version;.src projects/compiler-rt</userinput></screen>
+
+    <para>
+     There are many Python scripts in this package which use
+     <command>/usr/bin/env python</command> to access the system Python
+     which on LFS is <xref linkend="python3"/>. Use the following comand
+     to fix these scripts:
+    </para>
+
+<screen><userinput>grep -rl '#!.*python' | xargs sed -i '1s/python$/python3/'</userinput></screen>
 
     <para>
@@ -227,5 +235,6 @@
     </para>
 
-<screen remap="doc"><userinput>cmake -DLLVM_ENABLE_SPHINX=ON         \
+<screen remap="doc"><userinput>cmake -DLLVM_BUILD_DOCS=ON            \
+      -DLLVM_ENABLE_SPHINX=ON         \
       -DSPHINX_WARNINGS_AS_ERRORS=OFF \
       -Wno-dev -G Ninja ..            &amp;&amp;
@@ -250,7 +259,6 @@
       by the <systemitem class="username">root</systemitem> user and makes them
       temporarily unusable by all jobs on the machine.)
-      Note that the Sanitizer based tests (6 of more than 41000 tests run) 
-      are known to fail.
-
+      Note that a few of the compiler-rt Sanitizer based tests (6 of more than 48000
+      tests run) are known to fail.
     </para>
 
@@ -360,6 +368,6 @@
           bugpoint, c-index-test, clang, clang++ (symlinks to
           clang-&lt;version&gt;), clang-&lt;version&gt;, clang-check, clang-cl,
-          clang-cpp (last two symlinks to clang), clang-format, clang-extdef-mapping,
-          clang-import-test, clang-offload-bundler, clang-offload-wrapper, 
+          clang-cpp (last two symlinks to clang), clang-extdef-mapping, clang-format,
+          clang-offload-bundler, clang-offload-wrapper, 
           clang-refactor, clang-rename, clang-scan-deps,
           diagtool, dsymutil, git-clang-format, hmap-tool, llc, lli, 
@@ -368,5 +376,5 @@
           llvm-cxxdump, llvm-cxxfilt, llvm-cxxmap,
           llvm-diff, llvm-dis, llvm-dlltool (symlink to llvm-ar), llvm-dwarfdump,
-          llvm-dwp, llvm-elfabi, llvm-exegenesis, llvm-extract, llvm-ifs,
+          llvm-dwp, llvm-elfabi, llvm-exegenesis, llvm-extract, llvm-gsymutil, llvm-ifs,
           llvm-install-name-tool (symlink to llvm-objcopy), llvm-jitlink,
           llvm-lib (symlink to llvm-ar), llvm-link, llvm-lipo, llvm-lto, 
@@ -875,4 +883,18 @@
       </varlistentry>
 
+      <varlistentry id="llvm-gsymutil">
+        <term><command>llvm-gsymutil</command></term>
+        <listitem>
+          <para>
+            is used to process GSYM Symbolication Format files which
+            convert memory addresses to function name and source file
+            line. These files are smaller than DWARF or Breakpad files.
+          </para>
+          <indexterm zone="llvm llvm-gsymutil">
+            <primary sortas="b-llvm-gsymutil">llvm-gsymutil</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
       <varlistentry id="llvm-ifs">
         <term><command>llvm-ifs</command></term>
Index: general/prog/rust.xml
===================================================================
--- general/prog/rust.xml	(revision a2e21eed9b6201b6d6a7f32e9dcddbb7561ace5c)
+++ general/prog/rust.xml	(revision bf5fb9456ae29b0253a31354c84083dfe32b5e77)
@@ -7,6 +7,6 @@
   <!ENTITY rust-download-http "https://static.rust-lang.org/dist/rustc-&rust-version;-src.tar.gz">
   <!ENTITY rust-download-ftp  " ">
-  <!ENTITY rust-md5sum        "ff5731326898a7010403e1b148375de4">
-  <!ENTITY rust-size          "130 MB">
+  <!ENTITY rust-md5sum        "a460bed79b92f6a7833ba6e6390ee6ae">
+  <!ENTITY rust-size          "145 MB">
   <!-- Gentle Reminder: buildsize is how much the user requires for the real
        install, i.e. the source with its DESTDIR *plus* the DESTDIR.  You
@@ -15,6 +15,6 @@
        after the tests. -->
 
-  <!ENTITY rust-buildsize     "5.7 GB (250 MB installed) including 344 MB of ~/.cargo files for the user building this. Add 2.5 GB if running the tests">
-  <!ENTITY rust-time          "33 SBU (add 17 SBU for tests, both on a 4-core machine)">
+  <!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">
+  <!ENTITY rust-time          "39 SBU (add 31 SBU for tests, both on a 4-core machine)">
 ]>
 
@@ -100,5 +100,5 @@
     <para>
       The current <application>rustbuild</application> build-system will use
-      all available processors, although it does not scale well and often falls
+      all processors, although it does not scale well and often falls
       back to just using one core while waiting for a library to compile.
       However it can be mostly limited to a specified number of processors by
@@ -108,4 +108,15 @@
       environment variable <envar>CARGO_BUILD_JOBS=&lt;N&gt;</envar>. At the
       moment this is not effective when some of the rustc tests are run.
+    </para>
+
+    <para>
+      The current version of rust's num_cpus crate now recognizes that cgroups
+      can be used to restrict which processors it is allowed to use. So if your
+      machine lacks DRAM (typically, less than 2GB DRAM per core) that might be
+      an alternative to taking CPUs offline.
+      <phrase revision="sysv">In sysv systems cgroups requires <ulink
+      url="https://sourceforge.net/projects/libcg/">libcgroup</ulink>.</phrase>
+      <phrase revision="systemd">That can apparently be achievedd by writing
+      custom unit files.</phrase>
     </para>
 
@@ -205,6 +216,5 @@
     <bridgehead renderas="sect4">Optional</bridgehead>
     <para role="optional">
-      <xref linkend="gdb"/> (used by the testsuite if it is present) and
-      <xref linkend="python2"/> (used by the testsuite)
+      <xref linkend="gdb"/> (used by the testsuite if it is present)
     </para>
 
@@ -293,4 +303,13 @@
 
     <para>
+      Two of the tests reliably fail. To cause them to be ignored run the
+      following sed command:
+     </para>
+
+<screen><userinput>sed -i '1i # ignore-test' \
+ src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile \
+ src/test/run-make-fulldeps/long-linker-command-lines/Makefile</userinput></screen>
+
+    <para>
       Compile <application>Rust</application> by running the following
       commands:
@@ -318,16 +337,7 @@
 
     <para>
-      The instructions above do not build ARM compilers, so the testsuite
-      <emphasis>will</emphasis> fail and the tests will be reported to end in
-      error, with a backtrace of the last failing test. On a good run, 3 tests
-      which need Thumb (ARM) compilers will fail, all in <filename
-      class="directory">ui/issues</filename> for issues 37131, 49851 and 50993.
-      A fourth test,
-      <filename>run-make-fulldeps/sysroot-crates-are-unstable</filename>
-      fails, presumably because we are using only stable features.
-      <!-- gdb appears to be fixed now
-      If gdb has been installed, in some circumstances tests in
-      <filename class="directory">debuginfo</filename> may fail.--> As with all
-      large testsuites, other tests might
+      Although no tests are now expected to fail, the testsuite reports that
+      1 commands did not execute successfully. As with all large testsuites,
+      some tests might
       fail on some machines - if the number of failures is in the single digits,
       check the log for 'FAILED' and review lines above that, particularly the
@@ -339,5 +349,5 @@
       If you get any <emphasis>other</emphasis> failing test which reports an
       issue number then you should search for that issue.  For example, when
-      rustc &gt;= 1.41.1 is built with a version of sysllvm before 10.0 the test
+      rustc &gt;= 1.41.1 was built with a version of sysllvm before 10.0 the test
       for issue 69225 fails <ulink
       url="https://github.com/rust-lang/rust/issues/69225"/> and that should be
@@ -347,5 +357,9 @@
 
     <para>
-      Therefore, you should determine the number of failures. The total number
+      Therefore, you should determine the number of failures.
+    </para>
+
+<!--
+ The total number
       of tests varies depending on which dependencies are present, e.g. more
       will be run if <command>gdb</command> is available. If you wish, the
@@ -353,8 +367,8 @@
     </para>
 
-<screen remap="test"><userinput>egrep 'running [[:digit:]]+ test' rustc-testlog | awk '{ sum += $2 } END { print sum }'</userinput></screen>
-
-    <para>
-      More importantly, the total of tests which failed can be found by running:
+<screen remap="test"><userinput>egrep 'running [[:digit:]]+ test' rustc-testlog | awk '{ sum += $2 } END { print sum }'</userinput></screen>-->
+
+    <para>
+      The number of tests which failed can be found by running:
     </para>
 
Index: introduction/important/building-notes.xml
===================================================================
--- introduction/important/building-notes.xml	(revision a2e21eed9b6201b6d6a7f32e9dcddbb7561ace5c)
+++ introduction/important/building-notes.xml	(revision bf5fb9456ae29b0253a31354c84083dfe32b5e77)
@@ -778,5 +778,5 @@
         Whilst gcc has many hardening options, clang/LLVM's strengths lie
         elsewhere. Some options which gcc provides are said to be less effective
-        in clang/LLVM, others are not available.
+        in clang/LLVM.
       </para>
 
Index: introduction/welcome/changelog.xml
===================================================================
--- introduction/welcome/changelog.xml	(revision a2e21eed9b6201b6d6a7f32e9dcddbb7561ace5c)
+++ introduction/welcome/changelog.xml	(revision bf5fb9456ae29b0253a31354c84083dfe32b5e77)
@@ -46,4 +46,13 @@
       <itemizedlist>
         <listitem>
+          <para>[ken] - Update to rustc-1.47.0 to allow system llvm-11 to be
+          used. Patch firefox and thunderbird for this. Fixes
+          <ulink url="&blfs-ticket-root;14142">#14142</ulink>.</para>
+        </listitem>
+        <listitem>
+          <para>[ken] - Update to llvm-11.0.0. Fixes
+          <ulink url="&blfs-ticket-root;14133">#14133</ulink>.</para>
+        </listitem>
+        <listitem>
           <para>[renodr] - Update to Pygments-2.7.2. Fixes
           <ulink url="&blfs-ticket-root;14173">#14173</ulink>.</para>
Index: packages.ent
===================================================================
--- packages.ent	(revision a2e21eed9b6201b6d6a7f32e9dcddbb7561ace5c)
+++ packages.ent	(revision bf5fb9456ae29b0253a31354c84083dfe32b5e77)
@@ -339,6 +339,6 @@
 <!ENTITY guile-version                "3.0.4">
 <!ENTITY librep-version               "0.92.7">
-<!ENTITY llvm-majmin-version          "10.0">
-<!ENTITY llvm-point-version           "1">
+<!ENTITY llvm-majmin-version          "11.0">
+<!ENTITY llvm-point-version           "0">
 <!ENTITY llvm-version                 "&llvm-majmin-version;.&llvm-point-version;">
 <!ENTITY lua-version                  "5.4.1">
@@ -364,5 +364,5 @@
 <!ENTITY ruby-patch-version           "2">
 <!ENTITY ruby-version                 "&ruby-minor-version;.&ruby-patch-version;">
-<!ENTITY rust-version                 "1.42.0">
+<!ENTITY rust-version                 "1.47.0">
 <!ENTITY scons-version                "4.0.1">
 <!ENTITY slang-version                "2.3.2">
Index: xsoft/graphweb/firefox.xml
===================================================================
--- xsoft/graphweb/firefox.xml	(revision a2e21eed9b6201b6d6a7f32e9dcddbb7561ace5c)
+++ xsoft/graphweb/firefox.xml	(revision bf5fb9456ae29b0253a31354c84083dfe32b5e77)
@@ -11,9 +11,9 @@
   <!-- NB with stylo, much of the build uses rust, and therefore cargo files.
     But the extra cached cargo files, if any, seem to be minimal -->
-  <!ENTITY firefox-buildsize     "4.7 GB (184 MB installed) without tests">
+  <!ENTITY firefox-buildsize     "5.0 GB (181 MB installed) without tests">
   <!-- editors: with ff63 and rust-1.29, ./mach build -j4 is probably the
    most practical way to get a timing on a machine with more cores, if taking
    cores offline is not practical. If in doubt, round up -->
-  <!ENTITY firefox-time          "29 SBU (on a 4-core machine) without tests">
+  <!ENTITY firefox-time          "30 SBU (on a 4-core machine) without tests">
 ]>
 
@@ -76,4 +76,14 @@
     </itemizedlist>
 
+    <bridgehead renderas="sect3">Additional Downloads</bridgehead>
+    <itemizedlist spacing="compact">
+      <listitem>
+        <para>
+          Required patch:
+          <ulink url="&patch-root;/firefox-&firefox-version;esr-rustc1470-1.patch"/>
+        </para>
+      </listitem>
+    </itemizedlist>
+
     <note>
       <para>
@@ -346,4 +356,9 @@
 esac</userinput></screen>
     -->
+    <para>
+      Apply a patch to allow this to be compiled with <xref linkend="rust"/>:
+    </para>
+
+<screen><userinput remap="pre">patch -p1 -i ../firefox-&firefox-version;esr-rustc1470-1.patch</userinput></screen>
 
     <para>
@@ -394,6 +409,8 @@
       everywhere. On the X86 architectures <application>clang</application>
       now appears to support most of the same security-hardening options as
-      <application>GCC</application> but the newer
-      <literal>-fstack-clash-protection</literal> is still not supported.
+      <application>GCC</application>.
+      <!-- supported in llvm-11
+      but the newer
+      <literal>-fstack-clash-protection</literal> is still not supported.-->
       With the current versions and the default flags,
       <application>GCC</application> creates a marginally bigger build but
Index: xsoft/graphweb/seamonkey.xml
===================================================================
--- xsoft/graphweb/seamonkey.xml	(revision a2e21eed9b6201b6d6a7f32e9dcddbb7561ace5c)
+++ xsoft/graphweb/seamonkey.xml	(revision bf5fb9456ae29b0253a31354c84083dfe32b5e77)
@@ -9,6 +9,6 @@
   <!ENTITY seamonkey-md5sum        "bbf02af3586f1d488e77517f8cd9f439">
   <!ENTITY seamonkey-size          "281 MB">
-  <!ENTITY seamonkey-buildsize     "6.6 GB (145 MB installed)">
-  <!ENTITY seamonkey-time          "16 SBU (on a 4-core machine)">
+  <!ENTITY seamonkey-buildsize     "6.8 GB (145 MB installed)">
+  <!ENTITY seamonkey-time          "18 SBU (on a 4-core machine)">
 ]>
 
@@ -107,4 +107,5 @@
       <xref linkend="autoconf213"/>,
       both <xref linkend="gtk2"/> and <xref linkend="gtk3"/>,
+      <xref linkend="python2"/>,
       <xref linkend="rust"/>,
       <xref linkend="unzip"/>, 
Index: xsoft/other/thunderbird.xml
===================================================================
--- xsoft/other/thunderbird.xml	(revision a2e21eed9b6201b6d6a7f32e9dcddbb7561ace5c)
+++ xsoft/other/thunderbird.xml	(revision bf5fb9456ae29b0253a31354c84083dfe32b5e77)
@@ -9,5 +9,5 @@
   <!ENTITY thunderbird-md5sum        "8cee1fabb60c00a9913b133309e3e1b7">
   <!ENTITY thunderbird-size          "345 MB">
-  <!ENTITY thunderbird-buildsize     "5.1 GB (177 MB installed)">
+  <!ENTITY thunderbird-buildsize     "5.4 GB (170 MB installed)">
   <!ENTITY thunderbird-time          "32 SBU (on a 4-core machine)">
   <!-- Removed the -j1 time because python and rust do not obey it, although
@@ -74,5 +74,4 @@
     </itemizedlist>
 
-<!--
     <bridgehead renderas="sect3">Additional Downloads</bridgehead>
     <itemizedlist spacing="compact">
@@ -80,9 +79,9 @@
         <para>
           Required patch:
-          <ulink url="&patch-root;/thunderbird-&thunderbird-version;-upstream_fixes-1.patch"/>
+          <ulink url="&patch-root;/thunderbird-&thunderbird-version;-rustc1470-1.patch"/>
         </para>
       </listitem>
     </itemizedlist>
--->
+
     <bridgehead renderas="sect3">Thunderbird Dependencies</bridgehead>
 
@@ -225,12 +224,10 @@
 EOF</userinput></screen>
 
-<!--
-    <para>
-      First, fix a regression in <application>Thunderbird</application> that
-      prevents the mail panes and other UI elements from functioning properly:
-    </para>
-
-<screen><userinput remap="pre">patch -Np1 -i ../thunderbird-&thunderbird-version;-upstream_fixes-1.patch</userinput></screen>
--->
+    <para>
+      Apply a patch to allow this to be compiled with <xref linkend="rust"/>:
+    </para>
+
+<screen><userinput remap="pre">patch -p1 -i ../thunderbird-&thunderbird-version;-rustc1470-1.patch</userinput></screen>
+
     <para>
       Compile <application>Thunderbird</application> by issuing the following
