<div class="container">
    <h1>Recommended update for rust, rust1.71</h1>

    <table class="table table-striped table-bordered">
        <tbody>
        <tr>
            <th>Announcement ID:</th>
            <td>SUSE-RU-2023:2978-1</td>
        </tr>
        
        <tr>
            <th>Rating:</th>
            <td>moderate</td>
        </tr>
        <tr>
            <th>References:</th>
            <td>
                <ul>
                    
                </ul>
            </td>
        </tr>
        
        <tr>
            <th>Affected Products:</th>
            <td>
                <ul class="list-group">
                    
                        <li class="list-group-item">Development Tools Module 15-SP4</li>
                    
                        <li class="list-group-item">Development Tools Module 15-SP5</li>
                    
                        <li class="list-group-item">openSUSE Leap 15.4</li>
                    
                        <li class="list-group-item">openSUSE Leap 15.5</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise Desktop 15 SP4</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise Desktop 15 SP5</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise High Performance Computing 15 SP4</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise High Performance Computing 15 SP5</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise Real Time 15 SP4</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise Real Time 15 SP5</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise Server 15 SP4</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise Server 15 SP5</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise Server for SAP Applications 15 SP4</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise Server for SAP Applications 15 SP5</li>
                    
                        <li class="list-group-item">SUSE Manager Proxy 4.3</li>
                    
                        <li class="list-group-item">SUSE Manager Retail Branch Server 4.3</li>
                    
                        <li class="list-group-item">SUSE Manager Server 4.3</li>
                    
                </ul>
            </td>
        </tr>
        </tbody>
    </table>

    <p>An update that contains one feature can now be installed.</p>

    <h2>Description:</h2>
    <p>This update for rust and rust1.71 fixes the following issues:</p>
<p>This update ships rust1.71.</p>
<h1>Version 1.71.0 (2023-07-13)</h1>
<h2>Language</h2>
<ul>
<li>Stabilize <code>raw-dylib</code>, <code>link_ordinal</code>, <code>import_name_type</code> and <code>-Cdlltool</code>.</li>
<li>Uplift <code>clippy::{drop,forget}_{ref,copy}</code> lints.</li>
<li>Type inference is more conservative around constrained vars.</li>
<li>Use fulfillment to check <code>Drop</code> impl compatibility</li>
</ul>
<h2>Compiler</h2>
<ul>
<li>Evaluate place expression in <code>PlaceMention</code>
  making <code>let _ =</code> patterns more consistent with respect to the borrow checker.</li>
<li>Add <code>--print deployment-target</code> flag for Apple targets.</li>
<li>Stabilize <code>extern &quot;C-unwind&quot;</code> and friends.
  The existing <code>extern &quot;C&quot;</code> etc. may change behavior for cross-language unwinding in a future release.</li>
<li>Update the version of musl used on <code>*-linux-musl</code> targets to 1.2.3
  enabling <a href="https://musl.libc.org/time64.html">time64</a> on 32-bit systems.</li>
<li>Stabilize <code>debugger_visualizer</code>
  for embedding metadata like Microsoft&#x27;s Natvis.</li>
<li>Enable flatten-format-args by default.</li>
<li>Make <code>Self</code> respect tuple constructor privacy.</li>
<li>Improve niche placement by trying two strategies and picking the better result.</li>
<li>Use <code>apple-m1</code> as the target CPU for <code>aarch64-apple-darwin</code>.</li>
<li>Add Tier 3 support for the <code>x86_64h-apple-darwin</code> target.</li>
<li>Promote <code>loongarch64-unknown-linux-gnu</code> to Tier 2 with host tools.</li>
</ul>
<p>Refer to Rust&#x27;s [platform support page][platform-support-doc]
for more information on Rust&#x27;s tiered platform support.</p>
<h2>Libraries</h2>
<ul>
<li>Rework handling of recursive panics.
  Additional panics are allowed while unwinding, as long as they are caught before escaping
  a <code>Drop</code> implementation, but panicking within a panic hook is now an immediate abort.</li>
<li>Loosen <code>From&lt;&amp;[T]&gt; for Box&lt;[T]&gt;</code> bound to <code>T: Clone</code>.</li>
<li>Remove unnecessary <code>T: Send</code> bound
  in <code>Error for mpsc::SendError&lt;T&gt;</code> and <code>TrySendError&lt;T&gt;</code>.</li>
<li>Fix docs for <code>alloc::realloc</code>
  to match <code>Layout</code> requirements that the size must not exceed <code>isize::MAX</code>.</li>
<li>Document <code>const {}</code> syntax for <code>std::thread_local</code>.
  This syntax was stabilized in Rust 1.59, but not previously mentioned in release notes.</li>
</ul>
<h2>Stabilized APIs</h2>
<ul>
<li><code>CStr::is_empty</code>](https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#method.is_empty)</li>
<li><code>BuildHasher::hash_one</code>](https://doc.rust-lang.org/stable/std/hash/trait.BuildHasher.html#method.hash_one)</li>
<li><code>NonZeroI*::is_positive</code>](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.is_positive)</li>
<li><code>NonZeroI*::is_negative</code>](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.is_negative)</li>
<li><code>NonZeroI*::checked_neg</code>](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.checked_neg)</li>
<li><code>NonZeroI*::overflowing_neg</code>](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.overflowing_neg)</li>
<li><code>NonZeroI*::saturating_neg</code>](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.saturating_neg)</li>
<li><code>NonZeroI*::wrapping_neg</code>](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.wrapping_neg)</li>
<li><code>Neg for NonZeroI*</code>](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#impl-Neg-for-NonZeroI32)</li>
<li><code>Neg for &amp;NonZeroI*</code>](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#impl-Neg-for-%26NonZeroI32)</li>
<li><code>From&lt;[T; N]&gt; for (T...)</code>](https://doc.rust-lang.org/stable/std/primitive.array.html#impl-From%3C%5BT;+1%5D%3E-for-(T,))
  (array to N-tuple for N in 1..=12)</li>
<li><code>From&lt;(T...)&gt; for [T; N]</code>](https://doc.rust-lang.org/stable/std/primitive.array.html#impl-From%3C(T,)%3E-for-%5BT;+1%5D)
  (N-tuple to array for N in 1..=12)</li>
<li><code>windows::io::AsHandle for Box&lt;T&gt;</code>](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsHandle.html#impl-AsHandle-for-Box%3CT%3E)</li>
<li><code>windows::io::AsHandle for Rc&lt;T&gt;</code>](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsHandle.html#impl-AsHandle-for-Rc%3CT%3E)</li>
<li><code>windows::io::AsHandle for Arc&lt;T&gt;</code>](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsHandle.html#impl-AsHandle-for-Arc%3CT%3E)</li>
<li><code>windows::io::AsSocket for Box&lt;T&gt;</code>](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsSocket.html#impl-AsSocket-for-Box%3CT%3E)</li>
<li><code>windows::io::AsSocket for Rc&lt;T&gt;</code>](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsSocket.html#impl-AsSocket-for-Rc%3CT%3E)</li>
<li><code>windows::io::AsSocket for Arc&lt;T&gt;</code>](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsSocket.html#impl-AsSocket-for-Arc%3CT%3E)</li>
</ul>
<p>These APIs are now stable in const contexts:</p>
<ul>
<li><code>&lt;*const T&gt;::read</code>](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read)</li>
<li><code>&lt;*const T&gt;::read_unaligned</code>](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read_unaligned)</li>
<li><code>&lt;*mut T&gt;::read</code>](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read-1)</li>
<li><code>&lt;*mut T&gt;::read_unaligned</code>](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read_unaligned-1)</li>
<li><code>ptr::read</code>](https://doc.rust-lang.org/stable/std/ptr/fn.read.html)</li>
<li><code>ptr::read_unaligned</code>](https://doc.rust-lang.org/stable/std/ptr/fn.read_unaligned.html)</li>
<li><code>&lt;[T]&gt;::split_at</code>](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_at)</li>
</ul>
<h2>Cargo</h2>
<ul>
<li>Allow named debuginfo options in <code>Cargo.toml</code>.</li>
<li>Add <code>workspace_default_members</code> to the output of <code>cargo metadata</code>.</li>
<li><code>cargo add</code> now considers <code>rust-version</code> when selecting packages.</li>
<li>Automatically inherit workspace fields when running <code>cargo new</code>/<code>cargo init</code>.</li>
</ul>
<h2>Rustdoc</h2>
<ul>
<li>Add a new <code>rustdoc::unescaped_backticks</code> lint for broken inline code.</li>
<li>Support strikethrough with single tildes.](https://github.com/rust-lang/rust/pull/111152/) (<code>~~old~~</code> vs. <code>~new~</code>)</li>
</ul>
<h2>Misc</h2>
<h2>Compatibility Notes</h2>
<ul>
<li>Remove structural match from <code>TypeId</code>.
  Code that uses a constant <code>TypeId</code> in a pattern will potentially be broken.
  Known cases have already been fixed -- in particular, users of the <code>log</code>
  crate&#x27;s <code>kv_unstable</code> feature should update to <code>log v0.4.18</code> or later.</li>
<li>Add a <code>sysroot</code> crate to represent the standard library crates.
  This does not affect stable users, but may require adjustment in tools that build their own standard library.</li>
<li>Cargo optimizes its usage under <code>rustup</code>. When
  Cargo detects it will run <code>rustc</code> pointing to a rustup proxy, it&#x27;ll try bypassing the proxy and
  use the underlying binary directly. There are assumptions around the interaction with rustup and
  <code>RUSTUP_TOOLCHAIN</code>. However, it&#x27;s not expected to affect normal users.</li>
<li>When querying a package, Cargo tries only the original name, all hyphens, and all underscores to
  handle misspellings. Previously, Cargo tried each
  combination of hyphens and underscores, causing excessive requests to crates.io.</li>
<li>Cargo now disallows <code>RUSTUP_HOME</code> and
  <code>RUSTUP_TOOLCHAIN</code> in the <code>[env]</code> configuration
  table. This is considered to be not a use case Cargo would like to support, since it will likely
  cause problems or lead to confusion.</li>
</ul>

    

    <h2>Patch Instructions:</h2>
    <p>
        To install this SUSE Moderate update use the SUSE recommended
        installation methods like YaST online_update or "zypper patch".<br/>

        Alternatively you can run the command listed for your product:
    </p>
    <ul class="list-group">
        
            <li class="list-group-item">
                openSUSE Leap 15.4
                
                    
                        <br/>
                        <code>zypper in -t patch SUSE-2023-2978=1 openSUSE-SLE-15.4-2023-2978=1</code>
                    
                    
                
            </li>
        
            <li class="list-group-item">
                openSUSE Leap 15.5
                
                    
                        <br/>
                        <code>zypper in -t patch openSUSE-SLE-15.5-2023-2978=1</code>
                    
                    
                
            </li>
        
            <li class="list-group-item">
                Development Tools Module 15-SP4
                
                    
                        <br/>
                        <code>zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP4-2023-2978=1</code>
                    
                    
                
            </li>
        
            <li class="list-group-item">
                Development Tools Module 15-SP5
                
                    
                        <br/>
                        <code>zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP5-2023-2978=1</code>
                    
                    
                
            </li>
        
    </ul>

    <h2>Package List:</h2>
    <ul>
        
            
                <li>
                    openSUSE Leap 15.4 (aarch64 ppc64le s390x x86_64 i586)
                    <ul>
                        
                            <li>rust-1.71.0-150400.24.21.1</li>
                        
                            <li>cargo-1.71.0-150400.24.21.1</li>
                        
                            <li>cargo1.71-1.71.0-150400.9.3.1</li>
                        
                            <li>rust1.71-debuginfo-1.71.0-150400.9.3.1</li>
                        
                            <li>cargo1.71-debuginfo-1.71.0-150400.9.3.1</li>
                        
                    </ul>
                </li>
            
                <li>
                    openSUSE Leap 15.4 (aarch64 ppc64le s390x x86_64 i586 nosrc)
                    <ul>
                        
                            <li>rust1.71-1.71.0-150400.9.3.1</li>
                        
                    </ul>
                </li>
            
                <li>
                    openSUSE Leap 15.4 (nosrc)
                    <ul>
                        
                            <li>rust1.71-test-1.71.0-150400.9.3.1</li>
                        
                    </ul>
                </li>
            
        
            
                <li>
                    openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64)
                    <ul>
                        
                            <li>rust-1.71.0-150400.24.21.1</li>
                        
                            <li>cargo-1.71.0-150400.24.21.1</li>
                        
                            <li>cargo1.71-1.71.0-150400.9.3.1</li>
                        
                            <li>rust1.71-debuginfo-1.71.0-150400.9.3.1</li>
                        
                            <li>cargo1.71-debuginfo-1.71.0-150400.9.3.1</li>
                        
                    </ul>
                </li>
            
                <li>
                    openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 nosrc)
                    <ul>
                        
                            <li>rust1.71-1.71.0-150400.9.3.1</li>
                        
                    </ul>
                </li>
            
        
            
                <li>
                    Development Tools Module 15-SP4 (aarch64 ppc64le s390x x86_64)
                    <ul>
                        
                            <li>rust-1.71.0-150400.24.21.1</li>
                        
                            <li>cargo-1.71.0-150400.24.21.1</li>
                        
                            <li>cargo1.71-1.71.0-150400.9.3.1</li>
                        
                            <li>rust1.71-debuginfo-1.71.0-150400.9.3.1</li>
                        
                            <li>cargo1.71-debuginfo-1.71.0-150400.9.3.1</li>
                        
                    </ul>
                </li>
            
                <li>
                    Development Tools Module 15-SP4 (aarch64 ppc64le s390x x86_64 nosrc)
                    <ul>
                        
                            <li>rust1.71-1.71.0-150400.9.3.1</li>
                        
                    </ul>
                </li>
            
        
            
                <li>
                    Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64)
                    <ul>
                        
                            <li>rust-1.71.0-150400.24.21.1</li>
                        
                            <li>cargo-1.71.0-150400.24.21.1</li>
                        
                            <li>cargo1.71-1.71.0-150400.9.3.1</li>
                        
                            <li>rust1.71-debuginfo-1.71.0-150400.9.3.1</li>
                        
                            <li>cargo1.71-debuginfo-1.71.0-150400.9.3.1</li>
                        
                    </ul>
                </li>
            
                <li>
                    Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64 nosrc)
                    <ul>
                        
                            <li>rust1.71-1.71.0-150400.9.3.1</li>
                        
                    </ul>
                </li>
            
        
    </ul>

    
        <h2>References:</h2>
        <ul>
            
                
                    <li>
                        <a href="https://jira.suse.com/browse/SLE-18626">https://jira.suse.com/browse/SLE-18626</a>
                    </li>
                
            
        </ul>
    
</div>