Changeset 4f9e45d9


Ignore:
Timestamp:
07/01/2019 05:45:04 PM (3 years ago)
Author:
Ken Moffat <ken@…>
Branches:
10.0, 10.1, 11.0, 9.0, 9.1, ken/refactor-virt, lazarus, qt5new, trunk, upgradedb, xry111/git-date, xry111/git-date-for-trunk, xry111/git-date-test
Children:
741231d
Parents:
714edd8f
Message:

Rustc-1.35.0.

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

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • general/prog/rust.xml

    r714edd8f r4f9e45d9  
    77  <!ENTITY rust-download-http "https://static.rust-lang.org/dist/rustc-&rust-version;-src.tar.gz">
    88  <!ENTITY rust-download-ftp  " ">
    9   <!ENTITY rust-md5sum        "366f049777e00d0d6f15d25895485efb">
    10   <!ENTITY rust-size          "152 MB">
     9  <!ENTITY rust-md5sum        "f43af67a139ce21ff5f530bbd2f486aa">
     10  <!ENTITY rust-size          "145 MB">
    1111  <!-- Gentle Reminder: buildsize is how much the user requires for the real
    1212       install, i.e. the source with its DESTDIR *plus* the DESTDIR.  You
     
    1414       to measure it. -->
    1515
    16   <!ENTITY rust-buildsize     "6.2 GB (475 MB installed) including 295MB of ~/.cargo files for the user building this. Add 1.5GB if installing the documentation (an extra 314MB is installed), and 2.0GB if running the tests">
    17   <!ENTITY rust-time          "34 SBU (add 3 SBU if installing the documentation and 15 SBU for tests, both with 4 processors)">
     16  <!ENTITY rust-buildsize     "5.6 GB (423 MB installed) including 407MB of ~/.cargo files for the user building this. Add 1.8 GB if running the tests">
     17  <!ENTITY rust-time          "24 SBU (add 15 SBU for tests, both with 4 processors)">
    1818]>
    1919
     
    118118      </para>
    119119      <para>
    120         Unlike with previous versions, the build times of this version when
    121        repeated on the same machine seem reasonably consistent.
     120        The build times of this version when repeated on the same machine are
     121        often reasonably consistent, but as with all compilations using
     122        <command>rustc</command> there can be some very slow outliers.
    122123      </para>
    123124      <para>
     
    175176    </para>
    176177
    177 <!-- comment out while using shipped LLVM
    178178    <bridgehead renderas="sect4">Recommended</bridgehead>
    179179    <para role="recommended">
    180180      <package>clang</package> from <xref linkend="llvm"/>
    181       (built with -DLLVM_LINK_LLVM_DYLIB=ON)
    182     </para>-->
     181      (built with -DLLVM_LINK_LLVM_DYLIB=ON so that rust can link to
     182      systel LLVM instead of building its shipped version)
     183    </para>
    183184
    184185    <bridgehead renderas="sect4">Optional</bridgehead>
    185186    <para role="optional">
    186187      <xref linkend="gdb"/> (used by the testsuite if it is present) and
    187       <xref linkend="python2"/> (one test fails if Python 2 is not present)
     188      <xref linkend="python2"/> (used by the testsuite)
    188189    </para>
    189190
     
    201202      and create a new directory (i.e. with a different name if trying a
    202203      modified build).
    203       As the <systemitem class="username">root</systemitem> 
     204      As the <systemitem class="username">root</systemitem>
    204205      user:
    205206    </para>
     
    219220    <para>
    220221      Create a suitable <filename>config.toml</filename> file which will
    221       configure the build. Unlike with previous releases, where even quite old
    222       system versions of <application>LLVM</application>worked well, this
    223       version ships with a development version and using the current <xref
    224       linkend="llvm"/> release is known to result in breakage in some
    225       circumstances.
     222      configure the build.
    226223    </para>
    227224
    228225<screen><userinput>cat &lt;&lt; EOF &gt; config.toml
    229226<literal># see config.toml.example for more possible options
     227# See the 8.4 book for an example using shipped LLVM
    230228[llvm]
    231 
    232 # use ninja
    233 ninja = true
    234 
     229# by default, rust will build for a myriad of architectures
    235230targets = "X86"
    236 # When compiling LLVM, the experimental targets (WebAssembly
    237 # and RISCV) are built by default - omit them
    238 experimental-targets = ""
     231
     232# When using system llvm prefer shared libraries
     233link-shared = true
    239234
    240235[build]
    241 # omit HTML docs to save time and space (comment this to build them)
     236# omit docs to save time and space (default is to build them)
    242237docs = false
    243238
     
    246241
    247242[install]
    248 # Adjust the prefix for the desired destination
    249 #prefix = "/usr"
    250 prefix = "/opt/rustc-&rust-version;"
    251 
    252 # docdir is used even if the full awesome docs are not installed
    253 docdir = "share/doc/rustc-&rust-version;"
     243prefix = "/opt/rustc-1.35.0-sysllvm"
     244docdir = "share/doc/rustc-1.35.0"
    254245
    255246[rust]
     
    261252codegen-tests = false
    262253
    263 # get a trace if there is an Internal Compiler Exception
    264 backtrace-on-ice = true
     254[target.x86_64-unknown-linux-gnu]
     255# NB the output of llvm-config (i.e. help options) may be
     256# dumped to the screen when config.toml is parsed.
     257llvm-config = "/usr/bin/llvm-config"
    265258</literal>
    266259EOF</userinput></screen>
    267260
    268261    <para>
    269       Now install <application>Rust</application> by running the following
     262      Now compile <application>Rust</application> by running the following
    270263      commands:
    271264    </para>
     
    281274        for traps on invalid opcodes, and for segmentation faults.
    282275        In themselves these are nothing to worry about, just a way for the
    283         test to be terminated. But if the output from the testsuite reports tests
    284         which FAIL with segmentation faults (signal 11) then there may be a
    285         problem.
     276        test to be terminated.
    286277      </para>
    287278    </note>
     
    299290      which need Thumb (ARM) compilers will fail, all in <filename
    300291      class="directory">ui/issues</filename> for issues 37131, 49851 and 50993.
    301       If <xref linkend="python2"/> is not installed, a fourth test,
     292      A fourth test,
    302293      <filename>run-make-fulldeps/sysroot-crates-are-unstable</filename>
    303       fails. If gdb has been installed, in some circumstances three tests in
    304       <filename class="directory">debuginfo</filename> also fail. As with all
     294      fails, presumably because we are using only stable features.
     295      If gdb has been installed, in some circumstances tests in
     296      <filename class="directory">debuginfo</filename> may fail. As with all
    305297      large testsuites, other tests might
    306298      fail on some machines - if the number of failures is in the single digits,
    307       check the log for 'FAILED' and review lines above that. Any mention of
     299      check the log for 'FAILED' and review lines above that, particularly the
     300      'stderr:' lines. Any mention of
    308301      SIGSEGV or signal 11 in a failing test is a cause for concern.
    309302    </para>
    310303
    311     <para>
     304    <para>+
    312305      Therefore, you should determine the number of tests, failures, etc. The
    313306      total number of tests which were considered is found by running:
     
    317310
    318311    <para>
    319       That should report 15795 tests. Similarly, the total tests which failed can
     312      That should report 16499 tests. Similarly, the total tests which failed can
    320313      be found by running:
    321314    </para>
     
    404397      crate (an interpreter for the Midlevel Intermediate Representation)
    405398      has failed to build on releases. It is optional, but the failure
    406       messages can persuade people that the whole build failed.
     399      messages can persuade people that the whole build failed.  However,
     400      although it is not built in the main compile, with rustc-1.35.0 it
     401      now gets compiled during the install, but it  is broken in this version.
     402      <!-- might be unbroken in 1.36.0, if so remove broken from description
     403       of miri below. https://github.com/rust-lang/rust/issues/61830 -->
    407404    </para>
    408405
     
    504501      <seglistitem>
    505502        <seg>
    506           cargo-clippy, cargo-fmt, cargo, clippy-driver, rls, rust-gdb, rust-lldb, rustc, rustdoc, rustfmt.
     503          cargo-clippy, cargo-fmt, cargo-miri, cargo, clippy-driver, miri, rls, rust-gdb, rust-lldb, rustc, rustdoc, rustfmt.
    507504        </seg>
    508505        <seg>
     
    548545      </varlistentry>
    549546
     547      <varlistentry id="cargo-miri">
     548        <term><command>cargo-miri</command></term>
     549        <listitem>
     550          <para>
     551            <!-- FIXME reword to 'is used by' if Miri installed
     552             AND works enough to report its \-\-help -->
     553            is for use by Miri to interpret bin crates and tests
     554          </para>
     555          <indexterm zone="rust cargo-miri">
     556            <primary sortas="b-cargo-miri">cargo-miri</primary>
     557          </indexterm>
     558        </listitem>
     559      </varlistentry>
     560
    550561      <varlistentry id="cargo">
    551562        <term><command>cargo</command></term>
     
    568579          <indexterm zone="rust clippy-driver">
    569580            <primary sortas="b-clippy-driver">clippy-driver</primary>
     581          </indexterm>
     582        </listitem>
     583      </varlistentry>
     584
     585      <varlistentry id="miri">
     586        <term><command>miri</command></term>
     587        <listitem>
     588          <para>
     589            is an interpreter for Rust's mid-level intermediate representation
     590            (MIR). It is broken in this version.
     591          </para>
     592          <indexterm zone="rust miri">
     593            <primary sortas="b-miri">miri</primary>
    570594          </indexterm>
    571595        </listitem>
  • introduction/welcome/changelog.xml

    r714edd8f r4f9e45d9  
    4646      <para>July 1st, 2019</para>
    4747      <itemizedlist>
     48        <listitem>
     49          <para>[ken] - Update to rustc-1.35.0, using system LLVM again,
     50          and patch thunderbird to build with this version. Fixes
     51          <ulink url="&blfs-ticket-root;11975">#11975</ulink>.</para>
     52        </listitem>
    4853        <listitem>
    4954          <para>[bdubbs] - Update to icewm-1.5.5. Fixes
  • packages.ent

    r714edd8f r4f9e45d9  
    339339<!ENTITY ruby-patch-version           "3">
    340340<!ENTITY ruby-version                 "&ruby-minor-version;.&ruby-patch-version;">
    341 <!ENTITY rust-version                 "1.32.0">
     341<!ENTITY rust-version                 "1.35.0">
    342342<!ENTITY scons-version                "3.0.5">
    343343<!ENTITY slang-version                "2.3.2">
  • xsoft/other/thunderbird.xml

    r714edd8f r4f9e45d9  
    7070          Estimated build time: &thunderbird-time;
    7171        </para>
     72      </listitem>
     73    </itemizedlist>
     74
     75    <bridgehead renderas="sect3">Additional Downloads</bridgehead>
     76    <itemizedlist spacing="compact">
     77      <listitem>
     78        <para>Required patch: <ulink url="&patch-root;/thunderbird-&thunderbird-version;-rust_fix-1.patch"/></para>
    7279      </listitem>
    7380    </itemizedlist>
     
    227234    <note><para>
    228235      If you are compiling <application>Thunderbird</application> in chroot,
    229       prepend <envar>SHELL=/bin/sh</envar> to the make command below.
     236      prepend <envar>SHELL=/bin/sh</envar> to the build command below.
    230237    </para></note>
    231238
    232 <screen><userinput>./mach build</userinput></screen>
     239<screen><userinput>patch -Np1 -i ../thunderbird-&thunderbird-version;-rust_fix-1.patch &amp;&amp;
     240./mach build</userinput></screen>
    233241
    234242    <para>
     
    272280      out-of-specification and allow it to produce a working program.
    273281    </para>-->
     282
     283    <para>
     284      <command>patch -Np1 -i ../thunderbird-&thunderbird-version;-rust_fix-1.patch</command>:
     285      Rustc-1.33.0 breaks the build of this version of Thunderbird by requiring
     286      that a macro must have documentation. The patch adds this.
     287    </para>
    274288
    275289    <para>
Note: See TracChangeset for help on using the changeset viewer.