Changeset 670ac4fc for general/prog


Ignore:
Timestamp:
03/06/2024 08:46:08 PM (8 weeks ago)
Author:
Xi Ruoyao <xry111@…>
Branches:
ken/TL2024, trunk, xry111/llvm18
Children:
c87567a
Parents:
383c5a2
Message:

Update to llvm-18.1.0 (#19413)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • general/prog/llvm.xml

    r383c5a2 r670ac4fc  
    99  <!ENTITY llvm-download-http "&llvm-url;/llvm-&llvm-version;.src.tar.xz">
    1010  <!ENTITY llvm-download-ftp  " ">
    11   <!ENTITY llvm-md5sum        "fd7fc891907e14f8e0ff7e3f87cc89a4">
    12   <!ENTITY llvm-size          "57 MB">
     11  <!ENTITY llvm-md5sum        "aaaf9cd983c775a11f18ee9b9713edb4">
     12  <!ENTITY llvm-size          "60 MB">
    1313  <!ENTITY llvm-buildsize     "4.2 GB (964 MB installed; add 20 GB for tests and 308 MB for documentation)">
    1414  <!ENTITY llvm-time          "13 SBU (Add 8 SBU for tests; both using parallelism=8)">
    1515
    1616  <!ENTITY clang-download-http "&llvm-url;/clang-&llvm-version;.src.tar.xz">
    17   <!ENTITY clang-md5sum        "52ff9f49e064860445474aa21e4a7e40">
    18   <!ENTITY clang-size          "21 MB">
     17  <!ENTITY clang-md5sum        "1d4b452265bda9f570d1aa2499815f5a">
     18  <!ENTITY clang-size          "22 MB">
    1919
    2020  <!ENTITY compiler-rt-download-http "&llvm-url;/compiler-rt-&llvm-version;.src.tar.xz">
    21   <!ENTITY compiler-rt-md5sum        "85d25f04cbc4c1a20e3a1ab2a2c522cd">
     21  <!ENTITY compiler-rt-md5sum        "745326564d64300874cbf3be602cd459">
    2222  <!ENTITY compiler-rt-size          "2.4 MB">
    2323
     
    2626
    2727  <!ENTITY cmake-llvm-download-http "&sources-anduin-http;/llvm/llvm-cmake-&llvm-maj-version;.src.tar.xz">
    28   <!ENTITY cmake-llvm-md5sum         "2b75b6446bfd5d0dcc288cd412b6a52a">
     28  <!ENTITY cmake-llvm-md5sum         "bf2ad617d47ce40fe77c0e5c26b1fe43">
    2929  <!ENTITY cmake-llvm-size           "12 KB">
    3030
    3131  <!ENTITY llvm-3rdparty-download-http "&sources-anduin-http;/llvm/llvm-third-party-&llvm-maj-version;.src.tar.xz">
    32   <!ENTITY llvm-3rdparty-md5sum        "09c9f2259766dd65b75cd728df11b395">
    33   <!ENTITY llvm-3rdparty-size          "376 KB">
     32  <!ENTITY llvm-3rdparty-md5sum        "5ebac19868c66cdac8b87077faefd38c">
     33  <!ENTITY llvm-3rdparty-size          "396 KB">
    3434]>
    3535
     
    172172      </listitem>
    173173    </itemizedlist>
    174     <itemizedlist spacing="compact">
    175       <listitem>
    176         <para>
    177           Patch enabling <xref linkend="gSSP"/> by default in clang:
    178           <ulink url="&patch-root;/clang-&llvm-maj-version;-enable_default_ssp-1.patch"/>
    179         </para>
    180       </listitem>
    181     </itemizedlist>
    182174
    183175    <bridgehead renderas="sect3">Optional Download</bridgehead>
     
    264256    <para>
    265257      If you have downloaded <application>compiler-rt</application>,
    266       install it into the source tree by running the following commands,
    267       <!-- https://github.com/llvm/llvm-project/pull/66761 -->
    268       and modify the building system so it will find the
    269       <filename class='directory'>
    270         llvm-cmake-&llvm-maj-version;.src</filename> directory correctly:
     258      install it into the source tree by running the following commands:
    271259    </para>
    272260
    273261<screen><userinput>tar -xf ../compiler-rt-&llvm-version;.src.tar.xz -C projects    &amp;&amp;
    274 mv projects/compiler-rt-&llvm-version;.src projects/compiler-rt &amp;&amp;
    275 sed '/^set(LLVM_COMMON_CMAKE_UTILS/d'                   \
    276     -i projects/compiler-rt/CMakeLists.txt</userinput></screen>
     262mv projects/compiler-rt-&llvm-version;.src projects/compiler-rt</userinput></screen>
    277263
    278264    <para>
     
    284270
    285271<screen><userinput>grep -rl '#!.*python' | xargs sed -i '1s/python$/python3/'</userinput></screen>
    286 
    287     <para>
    288       If you have downloaded <application>clang</application>,
    289       apply the following patch to enable <xref linkend="gSSP"/> by default
    290       in compiled programs.
    291     </para>
    292 <!-- need <../<patch> instead of -i because -d changes directory
    293      before applying -i -->
    294 <screen><userinput remap="pre">patch -Np2 -d tools/clang &lt;../clang-&llvm-maj-version;-enable_default_ssp-1.patch</userinput></screen>
    295 
    296     <para>
    297       If you have downloaded <application>compiler-rt</application>,
    298       fix a test case broken by default SSP in
    299       <application>clang</application>:
    300     </para>
    301 
    302 <screen><userinput remap="pre">sed 's/clang_dfsan/&amp; -fno-stack-protector/' \
    303     -i projects/compiler-rt/test/dfsan/origin_unaligned_memtrans.c</userinput></screen>
    304272
    305273    <para>
     
    321289      -DLLVM_BINUTILS_INCDIR=/usr/include   \
    322290      -DLLVM_INCLUDE_BENCHMARKS=OFF         \
     291      -DLLVM_VERSION_SUFFIX=                \
    323292      -DCLANG_DEFAULT_PIE_ON_LINUX=ON       \
     293      -DCLANG_CONFIG_FILE_SYSTEM_DIR=/etc/clang \
    324294      -Wno-dev -G Ninja ..                  &amp;&amp;
    325295ninja</userinput></screen>
     
    400370      read <xref linkend='build-in-cgroup'/> for details) to limit the
    401371      number of logical cores for running the tests.
     372      Two tests named
     373      <filename>sanitizer_coverage_inline8bit_counter_default_impl.cpp</filename>
     374      and <filename>sanitizer_coverage_symbolize.cpp</filename> are known
     375      to fail.
    402376      One test named <filename>Linux/clone_setns.cpp</filename> will fail
    403377      if <option>CONFIG_USER_NS</option> is not enabled in kernel
    404378      configuration.
    405       <!-- 17.0.1: 69321 Passed, 25066 Unsupported, 337 Skipped,
    406                    131 Expectedly Failed -->
     379      <!-- 18.1.0: 71613 Passed, 27447 Unsupported, 339 Skipped,
     380                   133 Expectedly Failed, 2 Failed -->
    407381
    408382      <!-- To editors: it seems there is a more thorough test suite named
     
    479453      The default is
    480454      all of the targets. You can use a semicolon separated list. Valid targets
    481       are: host, X86, Sparc, PowerPC, ARM, AArch64, Mips, Hexagon, Xcore,
    482       M68K, MSP430, NVPTX, SystemZ, AMDGPU, BPF, CppBackend, or all.
     455      are: host, AArch64, AMDGPU, ARM, AVR, BPF, Hexagon, Lanai, LoongArch,
     456      Mips, MSP430, NVPTX, PowerPC, RISCV, Sparc, SystemZ, SystemZ, VE,
     457      WebAssembly, X86, XCore, or all.
    483458    </para>
    484459
     
    513488    </para>
    514489
     490    <!-- https://github.com/llvm/llvm-project/issues/84168
     491         It'll likely be fixed in 18.1.1, remove this then.  -->
     492    <para>
     493      <parameter>-DLLVM_VERSION_SUFFIX=</parameter>: works around an
     494      oversight in the upstream releasing process causing the 18.1.0
     495      release branded <quote>18.1rc</quote>.
     496    </para>
     497
    515498    <para>
    516499      <parameter>-DCLANG_DEFAULT_PIE_ON_LINUX=ON</parameter>: makes
     
    518501      Together with the <xref linkend="gASLR"/> feature enabled in the kernel,
    519502      this defeats some kind of attacks based on known memory layouts.
     503    </para>
     504
     505    <para>
     506      <parameter>-DCLANG_CONFIG_FILE_SYSTEM_DIR=/etc/clang</parameter>:
     507      makes <command>clang</command> and <command>clang++</command>
     508      search <filename class='directory'>/etc/clang</filename> for
     509      configuration files.
    520510    </para>
    521511
     
    535525    </para>
    536526
     527  </sect2>
     528
     529  <sect2 role="configuration">
     530    <title>Configuring LLVM</title>
     531
     532    <sect3 id="llvm-config-info">
     533      <title>Configuration Information</title>
     534
     535      <para>
     536        If you've built Clang, as the &root; user create two configuration
     537        files to make <xref linkend='gSSP'/> enabled by default for
     538        for <command>clang</command> and <command>clang++</command>, so
     539        the default configuration of their SSP feature will be consistent
     540        with <xref linkend='gcc'/>:
     541      </para>
     542
     543      <screen role='root'><userinput>for i in clang clang++; do
     544  echo -fstack-protector-strong &gt; /etc/clang/$i.cfg
     545done</userinput></screen>
     546    </sect3>
    537547  </sect2>
    538548
     
    554564          clang-offload-bundler, clang-offload-packager,
    555565          clang-refactor, clang-rename, clang-repl, clang-scan-deps,
     566          clang-tblgen,
    556567          diagtool, dsymutil, FileCheck, git-clang-format, hmaptool, intercept-build, llc, lli,
    557568          llvm-addr2line (symlink to llvm-symbolizer),
     
    571582          llvm-pdbutil, llvm-profdata, llvm-profgen,
    572583          llvm-ranlib (symlink to llvm-ar), llvm-rc,
    573           llvm-readelf (symlink to llvm-readobj), llvm-readobj, llvm-reduce,
     584          llvm-readelf (symlink to llvm-readobj), llvm-readobj,
     585          llvm-readtapi, llvm-reduce,
    574586          llvm-remark-size-diff, llvm-remarkutil,
    575587          llvm-rtdyld, llvm-sim, llvm-size, llvm-split, llvm-stress,
     
    577589          llvm-tapi-diff, llvm-tblgen, llvm-tli-checker, llvm-undname, llvm-windres (symlink to
    578590          llvm-rc), llvm-xray, nvptx-arch, opt, sancov, sanstats, scan-build,
    579           scan-build-py, scan-view, split-file, and verify-uselistorder
     591          scan-build-py, scan-view, and verify-uselistorder
    580592        </seg>
    581593        <seg>
     
    592604          /usr/include/{clang,clang-c,llvm,llvm-c},
    593605          /usr/lib/{clang,cmake/{clang,llvm},libear,libscanbuild},
    594           /usr/share/{clang,opt-viewer,scan-build,scan-view}, and
    595           /usr/share/doc/llvm-&llvm-version;
     606          /usr/share/{clang,opt-viewer,scan-build,scan-view},
     607          /usr/share/doc/llvm-&llvm-version;, and
     608          /etc/clang
    596609        </seg>
    597610      </seglistitem>
     
    780793      </varlistentry>
    781794
     795      <varlistentry id="clang-tblgen">
     796        <term><command>clang-tblgen</command></term>
     797        <listitem>
     798          <para>
     799            is a program that translates compiler-related target
     800            description (<filename class='extension'>.td</filename>) files
     801            into C++ code and other output formats
     802          </para>
     803          <indexterm zone="llvm clang-tblgen">
     804            <primary sortas="b-clang-tblgen">clang-tblgen</primary>
     805          </indexterm>
     806        </listitem>
     807      </varlistentry>
     808
    782809      <varlistentry id="diagtool">
    783810        <term><command>diagtool</command></term>
     
    15011528      </varlistentry>
    15021529
     1530      <varlistentry id="llvm-readtapi">
     1531        <term><command>llvm-readtapi</command></term>
     1532        <listitem>
     1533          <para>
     1534            is the LLVM TAPI file reader and transformer
     1535          </para>
     1536          <indexterm zone="llvm llvm-readtapi">
     1537            <primary sortas="b-llvm-readtapi">llvm-readtapi</primary>
     1538          </indexterm>
     1539        </listitem>
     1540      </varlistentry>
     1541
    15031542      <varlistentry id="llvm-reduce">
    15041543        <term><command>llvm-reduce</command></term>
     
    17491788          <indexterm zone="llvm scan-view">
    17501789            <primary sortas="b-scan-view">scan-view</primary>
    1751           </indexterm>
    1752         </listitem>
    1753       </varlistentry>
    1754 
    1755       <varlistentry id="split-file">
    1756         <term><command>split-file</command></term>
    1757         <listitem>
    1758           <para>
    1759             splits an input file into multiple parts separated by regex
    1760           </para>
    1761           <indexterm zone="llvm split-file">
    1762             <primary sortas="b-split-file">split-file</primary>
    17631790          </indexterm>
    17641791        </listitem>
Note: See TracChangeset for help on using the changeset viewer.