Changeset 4c6edac


Ignore:
Timestamp:
08/28/2017 07:55:17 PM (4 years ago)
Author:
Ken Moffat <ken@…>
Branches:
10.0, 10.1, 11.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, basic, bdubbs/svn, elogind, ken/refactor-virt, lazarus, perl-modules, qt5new, trunk, xry111/git-date, xry111/git-date-for-trunk, xry111/git-date-test
Children:
c8c1a9e
Parents:
f4cb967e
Message:

Rustc-1.19.0, archive llvm-3 and also the separate cargo which is now installed by rust.

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

Files:
6 edited
2 moved

Legend:

Unmodified
Added
Removed
  • general.ent

    rf4cb967e r4c6edac  
    11<!-- $LastChangedBy$ $Date$ -->
    22
    3 <!ENTITY day          "27">                   <!-- Always 2 digits -->
     3<!ENTITY day          "28">                   <!-- Always 2 digits -->
    44<!ENTITY month        "08">                   <!-- Always 2 digits -->
    55<!ENTITY year         "2017">
     
    77<!ENTITY copyholder   "The BLFS Development Team">
    88<!ENTITY version      "&year;-&month;-&day;">
    9 <!ENTITY releasedate  "August 27th, &year;">
     9<!ENTITY releasedate  "August 28th, &year;">
    1010<!ENTITY pubdate      "&year;-&month;-&day;"> <!-- metadata req. by TLDP -->
    1111<!ENTITY blfs-version "svn">                  <!-- svn|[release #] -->
  • general/prog/prog.xml

    rf4cb967e r4c6edac  
    2525  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="autoconf213.xml"/>
    2626<!--  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="bazaar.xml"/> -->
    27   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="cargo.xml"/>
    2827  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="check.xml"/>
    2928  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="clisp.xml"/>
     
    4342  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="guile.xml"/>
    4443  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="librep.xml"/>
    45   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="llvm3.xml"/>
    4644  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="llvm.xml"/>
    4745  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="lua.xml"/>
  • general/prog/rust.xml

    rf4cb967e r4c6edac  
    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        "c11d94d9e62f71838b20058f0797357a">
    10   <!ENTITY rust-size          "28 MB">
    11   <!ENTITY rust-buildsize     "1.5 GB (208 MB installed) plus 118MB for cargo files">
    12   <!ENTITY rust-time          "14 SBU (with 4 processors)">
     9  <!ENTITY rust-md5sum        "75e779670ac79edf023497a9c37eb35d">
     10  <!ENTITY rust-size          "48 MB">
     11  <!ENTITY rust-buildsize     "4.2 GB (362 MB installed), (add 0.6GB for tests) plus 273MB for ~/.cargo files">
     12  <!ENTITY rust-time          "33 SBU (add 14 SBU for tests, both with 4 processors)">
    1313]>
    1414
     
    5151    <para>
    5252      At the moment <application>Rust</application> does not provide any
    53       guarantees of a stable ABI, and it is likely that the next few versions
    54       of <application>firefox</application> will each require the latest version
    55       of <application>Rust</application>.
    56     </para>
    57 
    58     &lfs80_checked;
     53      guarantees of a stable ABI.
     54    </para>
     55
     56    &lfs81_checked;
    5957
    6058    <bridgehead renderas="sect3">Package Information</bridgehead>
     
    9795    <para role="required">
    9896      <xref linkend="curl"/>,
    99       <xref linkend="cmake"/> (if not using the recommended <xref linkend="llvm-old"/>),
     97      <xref linkend="cmake"/>,
    10098      <xref linkend="python2"/>
    101     </para>
    102 
    103     <bridgehead renderas="sect4">Recommended</bridgehead>
    104     <para role="recommended">
    105       <!-- acceptable versions of llvm are listed in the tests
    106            of LLVM_VERSION in configure, currently 3.{7-9}*    -->
    107       <xref linkend="llvm-old"/>
    10899    </para>
    109100
    110101    <bridgehead renderas="sect4">Optional</bridgehead>
    111102    <para role="optional">
    112       <xref linkend="gdb"/> (often required for the testsuite, but some of the
    113       gdb tests may still fail),
     103      <xref linkend="gdb"/> (used by debuginfo-gdb in the testsuite),
    114104      <xref linkend="ninja"/>
    115105    </para>
     
    123113    <title>Installation of Rust</title>
    124114
    125     <para>
    126       Install <application>Rust</application> by running the following
     115    <note>
     116      <para>
     117        This package is updated on a six-weekly release cycle. Because it is
     118        such a large and slow package to build, and is at the moment only used
     119        by one package in this book, the BLFS editors take the view that it
     120        should only be updated when that is necessary.
     121      </para>
     122    </note>
     123
     124    <para>
     125      First create a suitable <filename>config.toml</filename> file
     126      which will configure the build :
     127    </para>
     128
     129<screen><userinput>cat &lt;&lt;EOF &gt; config.toml
     130# see src/bootstrap/config.toml.example for more possible options
     131[llvm]
     132targets = "X86"
     133
     134[build]
     135# install cargo as well as rust
     136extended = true
     137
     138[install]
     139prefix = "/usr"
     140docdir = "share/doc/rustc-1.19.0"
     141channel = "stable"
     142EOF</userinput></screen>
     143
     144    <para>
     145      Now install <application>Rust</application> by running the following
    127146      commands:
    128147    </para>
    129148
    130 <screen><userinput>./configure --prefix=/usr             \
    131             --llvm-root=/opt/llvm3    \
    132             --enable-llvm-link-shared \
    133             --docdir=/usr/share/doc/rustc-&rust-version; &amp;&amp;
    134 ./x.py build</userinput></screen>
    135 
    136     <para>
    137       The testsuite in this package selects random subsets of the
    138       possible tests.  There is no correlation between how long a
    139       particular run of the testsuite takes, and how many tests
    140       were run. On occasion, the chosen tests will run in much
    141       less than 1.0 SBU, on other occasions they may take more
    142       than 20 SBU. Although it is normal to run the testsuite for
    143       a compiler, in this case that is very hard to recommend.
    144     </para>
    145 
    146     <para>
    147       Nevertheless, if you insist on running the tests issue
    148       <command>./x.py test</command>: as with the build, that will
    149       use all available CPUs.
     149<screen><userinput>./x.py build</userinput></screen>
     150
     151    <para>
     152      To run the tests issue
     153      <command>./x.py test --verbose --no-fail-fast &gt;../rustc-testlog</command>:
     154      as with the build, that will use all available CPUs.  This runs maniy suites
     155      of tests (in an apparently random order), three may fail:
     156      compile-fail/issue-37131.rs and run-make/target-without-atomics both try to
     157      compile for the thumbv6m-none-eabi target, but the BLFS build does not cater for
     158      that, and all 105 tests in debuginfo-gdb will fail if
     159      <application>gdb</application> has not been installed.
     160    </para>
     161
     162    <para>
     163      If you wish to look at the numbers for the results, you can find the total
     164      number of tests which were considered by running:
     165    </para>
     166
     167<screen><command>grep 'running .* tests' ../rustc-testlog | awk '{ sum += $2 } END { print sum }'</command></screen>
     168
     169    <para>
     170      That should report 14029 tests. Similarly, the total tests which failed can
     171      be found by running:
     172    </para>
     173
     174<screen><command>grep '^test result:' ../rustc-testlog | awk  '{ sum += $6 } END { print sum }'</command></screen>
     175
     176    <para>
     177      And similarly for the tests which passed use $4, for those which were ignored
     178      (i.e. skipped) use $8 (and $10 for 'measured', $12 for 'filtered out' but both
     179      are probably zero). The breakdown does not match the overall total.
    150180    </para>
    151181
     
    154184    </para>
    155185
    156 <screen role="root"><userinput>test -f /usr/lib/libLLVM-3.9.so ||
    157   ln -sv /opt/llvm3/lib/libLLVM-3.9.so /usr/lib &amp;&amp;
    158 
    159 ./x.py dist --install</userinput></screen>
     186<screen role="root"><userinput>./x.py dist --install</userinput></screen>
    160187  </sect2>
    161188
     
    164191
    165192    <para>
    166       <command>--llvm-root=/opt/llvm3 --enable-llvm-link-shared</command>:
    167       This tells rust to use the system version of llvm3 installed in
    168       <filename class="directory">/opt/llvm3</filename>, linking to the
    169       shared libraries.
    170     </para>
    171 
    172     <para>
    173       <option>--enable-dist-host-only</option>: If you did not install a
    174       system version of <xref linkend="llvm-old"/>, use this alternative command
    175       to build the shipped static version of llvm. It will
    176       <emphasis>compile</emphasis> for all the available linux cross-compilers
    177       (Aarch64, MIPS, PowerPC, SystemZ, etc) but with this switch it will only
    178       <emphasis>install</emphasis> for the host architecture.
    179     </para>
    180 
    181     <para>
    182       <option>RUSTFLAGS="$RUSTFLAGS -C link-args=-lffi"</option>: use this if
    183       you need to link against a version of LLVM-3 which was compiled against
    184       <xref linkend="libffi"/>.
    185     </para>
    186 
    187     <para>
    188       <command>ln -sv /opt/llvm3/lib/libLLVM-3.9.so /usr/lib</command>:
    189       Although the <emphasis>build</emphasis> of <application>Rust</application>
    190       finds the shared library in
    191       <filename class="directory">/opt/llvm3/lib</filename>, several of the steps
    192       run by the <application>rustbuild</application>
    193       <emphasis>installer</emphasis> do not find
    194       <filename>libLLVM-3.9.so</filename>. This conditional symlink fixes that,
    195       and works even if <filename>libLLVM-3.9.{0,1}</filename> has already been
    196       installed in <filename class="directory">/usr</filename>.
    197       <emphasis>Omit this command if you did not install a system version of
    198       <xref linkend="llvm-old"/></emphasis>.
    199     </para>
     193      <command>targets = "X86"</command>: this avoids building all the available
     194      linux cross-compilers (Aarch64, MIPS, PowerPC, SystemZ, etc).
     195    </para>
     196
     197    <para>
     198      <command>extended = true</command>: this installs Cargo alongside Rust.
     199    </para>
     200
     201    <para>
     202      <command>channel = "stable"</command>: this ensures only stable features
     203      can be used, the default in <filename>config.toml</filename> is to use
     204      development features, which is not appropriate for a released version.
     205    </para>
     206
     207    <para>
     208      <command>--verbose</command>: this switch can sometimes provide more
     209      information about a test which fails.
     210    </para>
     211
     212    <para>
     213      <command>--no-fail-fast</command>: this switch ensures that the testsuite
     214      will not stop at the first error.
     215    </para>
     216
    200217  </sect2>
    201218
     
    210227      <seglistitem>
    211228        <seg>
    212           rust-gdb, rust-lldb, rustc, rustdoc.
     229          cargo, rust-gdb, rust-lldb, rustc, rustdoc.
    213230        </seg>
    214231        <seg>
    215           Many libraries (libarena, libflate, libfmt_macros, libgetopts,
    216           libgraphviz, liblog, libproc_macro, librustc*, libserialize,
    217           libstd, libsyntax, libterm, libtest), all containing a hash in
    218           their names.
     232          Many lib*&lt;16-byte-hash&gt;.so libraries.
    219233        </seg>
    220234        <seg>
    221235          ~/.cargo,
    222           /usr/lib/rustlib, and
    223           /usr/share/doc/rustc-&rust-version;.
     236          /usr/lib/rustlib,
     237          /usr/share/doc/rustc-&rust-version;, and
     238          /usr/share/zsh/site-functions/
    224239        </seg>
    225240      </seglistitem>
     
    231246      <?dbhtml list-presentation="table"?>
    232247
     248      <varlistentry id="cargo">
     249        <term><command>cargo</command></term>
     250        <listitem>
     251          <para>
     252            is the Package Manager for Rust.
     253          </para>
     254          <indexterm zone="rust cargo">
     255            <primary sortas="b-cargo">cargo</primary>
     256          </indexterm>
     257        </listitem>
     258      </varlistentry>
     259
    233260      <varlistentry id="rust-gdb">
    234261        <term><command>rust-gdb</command></term>
  • introduction/welcome/changelog.xml

    rf4cb967e r4c6edac  
    4242    </listitem>
    4343-->
     44
     45    <listitem>
     46      <para>August 28th, 2017</para>
     47      <itemizedlist>
     48        <listitem>
     49          <para>[ken] - Update to rustc-1.19.0 and drop separate
     50          LLVM-3 and Cargo. Fixes
     51          <ulink url="&blfs-ticket-root;9652">#9652</ulink>.</para>
     52        </listitem>
     53      </itemizedlist>
     54    </listitem>
    4455
    4556    <listitem>
  • packages.ent

    rf4cb967e r4c6edac  
    290290<!ENTITY autoconf213-version          "2.13">
    291291<!ENTITY bazaar-version               "2.5.1">
    292 <!ENTITY cargo-version                "0.17.0">
    293 <!-- extras for cargo install, previous version for binaries, rust installer date -->
    294 <!ENTITY CARGOPREV                    "0.16.0">
    295 <!ENTITY RUSTIDATE                    "20161004">
    296292<!ENTITY check-version                "0.11.0">
    297293<!ENTITY clisp-version                "2.49">
     
    325321<!ENTITY ruby-patch-version           "1">
    326322<!ENTITY ruby-version                 "&ruby-minor-version;.&ruby-patch-version;">
    327 <!ENTITY rust-version                 "1.16.0">
     323<!ENTITY rust-version                 "1.19.0">
    328324<!ENTITY scons-version                "2.5.1">
    329325<!ENTITY slang-version                "2.3.1">
  • xsoft/graphweb/firefox.xml

    rf4cb967e r4c6edac  
    111111    <para role="required">
    112112      <xref linkend="autoconf213"/>,
    113       <xref linkend="cargo"/>,
    114113      both <xref linkend="gtk3"/> and
    115114      <xref linkend="gtk2"/>,
     
    119118      <xref linkend="alsa-lib"/> if you edit the mozconfig;
    120119        now deprecated by mozilla),
     120      <xref linkend="rust"/>,
    121121      <xref linkend="unzip"/>,
    122122      <xref linkend="yasm"/>, and
Note: See TracChangeset for help on using the changeset viewer.