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

    <table class="table table-striped table-bordered">
        <tbody>
        <tr>
            <th>Announcement ID:</th>
            <td>SUSE-RU-2024:2777-1</td>
        </tr>
        
        <tr>
            <th>Rating:</th>
            <td>moderate</td>
        </tr>
        <tr>
            <th>References:</th>
            <td>
                <ul>
                    
                    
                        <li style="display: inline;">
                            <a href="https://jira.suse.com/browse/SLE-18626">jsc#SLE-18626</a>
                        </li>
                    
                </ul>
            </td>
        </tr>
        
        <tr>
            <th>Affected Products:</th>
            <td>
                <ul class="list-group">
                    
                        <li class="list-group-item">Development Tools Module 15-SP5</li>
                    
                        <li class="list-group-item">Development Tools Module 15-SP6</li>
                    
                        <li class="list-group-item">openSUSE Leap 15.5</li>
                    
                        <li class="list-group-item">openSUSE Leap 15.6</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise Desktop 15 SP5</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise Desktop 15 SP6</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 SP5</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise Real Time 15 SP6</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise Server 15 SP5</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise Server 15 SP6</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise Server for SAP Applications 15 SP5</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise Server for SAP Applications 15 SP6</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, rust1.80 fixes the following issues:</p>
<h1>Version 1.80.0 (2024-07-25)</h1>
<h2>Language</h2>
<ul>
<li>Document maximum allocation size</li>
<li>Allow zero-byte offsets and ZST read/writes on arbitrary pointers</li>
<li>Support C23&#x27;s variadics without a named parameter</li>
<li>Stabilize <code>exclusive_range_pattern</code> feature</li>
<li>Guarantee layout and ABI of <code>Result</code> in some scenarios</li>
</ul>
<h2>Compiler</h2>
<ul>
<li>Update cc crate to v1.0.97 allowing additional spectre mitigations on MSVC targets</li>
<li>Allow field reordering on types marked <code>repr(packed(1))</code></li>
<li>Add a lint against never type fallback affecting unsafe code</li>
<li>Disallow cast with trailing braced macro in let-else</li>
<li>Expand <code>for_loops_over_fallibles</code> lint to lint on fallibles behind references.</li>
<li>self-contained linker: retry linking without <code>-fuse-ld=lld</code> on CCs that don&#x27;t support it</li>
<li>Do not parse CVarArgs (<code>...</code>) as a type in trait bounds</li>
<li>Improvements to LLDB formatting </li>
<li>For the wasm32-wasip2 target default to PIC and do not use <code>-fuse-ld=lld</code></li>
<li>Add x86_64-unknown-linux-none as a tier 3 target</li>
<li>Lint on <code>foo.into_iter()</code> resolving to <code>&amp;Box&lt;[T]&gt;: IntoIterator</code></li>
</ul>
<h2>Libraries</h2>
<ul>
<li>Add <code>size_of</code> and <code>size_of_val</code> and <code>align_of</code> and <code>align_of_val</code> to the prelude</li>
<li>Abort a process when FD ownership is violated</li>
<li>io::Write::write_fmt: panic if the formatter fails when the stream does not fail</li>
<li>Panic if <code>PathBuf::set_extension</code> would add a path separator</li>
<li>Add assert_unsafe_precondition to unchecked_{add,sub,neg,mul,shl,shr} methods</li>
<li>Update <code>c_char</code> on AIX to use the correct type</li>
<li><code>offset_of!</code> no longer returns a temporary</li>
<li>Handle sigma in <code>str.to_lowercase</code> correctly</li>
<li>Raise <code>DEFAULT_MIN_STACK_SIZE</code> to at least 64KiB</li>
</ul>
<h2>Stabilized APIs</h2>
<ul>
<li><code>impl Default for Rc&lt;CStr&gt;</code> https://doc.rust-lang.org/beta/alloc/rc/struct.Rc.html#impl-Default-for-Rc%3CCStr%3E</li>
<li><code>impl Default for Rc&lt;str&gt;</code>  https://doc.rust-lang.org/beta/alloc/rc/struct.Rc.html#impl-Default-for-Rc%3Cstr%3E</li>
<li><code>impl Default for Rc&lt;[T]&gt;</code>  https://doc.rust-lang.org/beta/alloc/rc/struct.Rc.html#impl-Default-for-Rc%3C%5BT%5D%3E</li>
<li><code>impl Default for Arc&lt;str&gt;</code>  https://doc.rust-lang.org/beta/alloc/sync/struct.Arc.html#impl-Default-for-Arc%3Cstr%3E</li>
<li><code>impl Default for Arc&lt;CStr&gt;</code>  https://doc.rust-lang.org/beta/alloc/sync/struct.Arc.html#impl-Default-for-Arc%3CCStr%3E</li>
<li><code>impl Default for Arc&lt;[T]&gt;</code>  https://doc.rust-lang.org/beta/alloc/sync/struct.Arc.html#impl-Default-for-Arc%3C%5BT%5D%3E</li>
<li><code>impl IntoIterator for Box&lt;[T]&gt;</code>  https://doc.rust-lang.org/beta/alloc/boxed/struct.Box.html#impl-IntoIterator-for-Box%3C%5BI%5D,+A%3E</li>
<li><code>impl FromIterator&lt;String&gt; for Box&lt;str&gt;</code>  https://doc.rust-lang.org/beta/alloc/boxed/struct.Box.html#impl-FromIterator%3CString%3E-for-Box%3Cstr%3E) </li>
<li><code>impl FromIterator&lt;char&gt; for Box&lt;str&gt;</code>  https://doc.rust-lang.org/beta/alloc/boxed/struct.Box.html#impl-FromIterator%3Cchar%3E-for-Box%3Cstr%3E</li>
<li><code>LazyCell</code>  https://doc.rust-lang.org/beta/core/cell/struct.LazyCell.html</li>
<li><code>LazyLock</code>  https://doc.rust-lang.org/beta/std/sync/struct.LazyLock.html</li>
<li><code>Duration::div_duration_f32</code>  https://doc.rust-lang.org/beta/std/time/struct.Duration.html#method.div_duration_f32</li>
<li><code>Duration::div_duration_f64</code>  https://doc.rust-lang.org/beta/std/time/struct.Duration.html#method.div_duration_f64</li>
<li><code>Option::take_if</code>  https://doc.rust-lang.org/beta/std/option/enum.Option.html#method.take_if</li>
<li><code>Seek::seek_relative</code>  https://doc.rust-lang.org/beta/std/io/trait.Seek.html#method.seek_relative</li>
<li><code>BinaryHeap::as_slice</code>  https://doc.rust-lang.org/beta/std/collections/struct.BinaryHeap.html#method.as_slice</li>
<li><code>NonNull::offset</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.offset</li>
<li><code>NonNull::byte_offset</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.byte_offset</li>
<li><code>NonNull::add</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.add</li>
<li><code>NonNull::byte_add</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.byte_add</li>
<li><code>NonNull::sub</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.sub</li>
<li><code>NonNull::byte_sub</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.byte_sub</li>
<li><code>NonNull::offset_from</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.offset_from</li>
<li><code>NonNull::byte_offset_from</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.byte_offset_from</li>
<li><code>NonNull::read</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.read</li>
<li><code>NonNull::read_volatile</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.read_volatile</li>
<li><code>NonNull::read_unaligned</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.read_unaligned</li>
<li><code>NonNull::write</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.write</li>
<li><code>NonNull::write_volatile</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.write_volatile</li>
<li><code>NonNull::write_unaligned</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.write_unaligned</li>
<li><code>NonNull::write_bytes</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.write_bytes</li>
<li><code>NonNull::copy_to</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.copy_to</li>
<li><code>NonNull::copy_to_nonoverlapping</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.copy_to_nonoverlapping</li>
<li><code>NonNull::copy_from</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.copy_from</li>
<li><code>NonNull::copy_from_nonoverlapping</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.copy_from_nonoverlapping</li>
<li><code>NonNull::replace</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.replace</li>
<li><code>NonNull::swap</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.swap</li>
<li><code>NonNull::drop_in_place</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.drop_in_place</li>
<li><code>NonNull::align_offset</code>  https://doc.rust-lang.org/beta/std/ptr/struct.NonNull.html#method.align_offset</li>
<li><code>&lt;[T]&gt;::split_at_checked</code>  https://doc.rust-lang.org/beta/std/primitive.slice.html#method.split_at_checked</li>
<li><code>&lt;[T]&gt;::split_at_mut_checked</code>  https://doc.rust-lang.org/beta/std/primitive.slice.html#method.split_at_mut_checked</li>
<li><code>str::split_at_checked</code>  https://doc.rust-lang.org/beta/std/primitive.str.html#method.split_at_checked</li>
<li><code>str::split_at_mut_checked</code>  https://doc.rust-lang.org/beta/std/primitive.str.html#method.split_at_mut_checked</li>
<li><code>str::trim_ascii</code>  https://doc.rust-lang.org/beta/std/primitive.str.html#method.trim_ascii</li>
<li><code>str::trim_ascii_start</code>  https://doc.rust-lang.org/beta/std/primitive.str.html#method.trim_ascii_start</li>
<li><code>str::trim_ascii_end</code>  https://doc.rust-lang.org/beta/std/primitive.str.html#method.trim_ascii_end</li>
<li><code>&lt;[u8]&gt;::trim_ascii</code>  https://doc.rust-lang.org/beta/core/primitive.slice.html#method.trim_ascii</li>
<li><code>&lt;[u8]&gt;::trim_ascii_start</code>  https://doc.rust-lang.org/beta/core/primitive.slice.html#method.trim_ascii_start</li>
<li><code>&lt;[u8]&gt;::trim_ascii_end</code>  https://doc.rust-lang.org/beta/core/primitive.slice.html#method.trim_ascii_end</li>
<li><code>Ipv4Addr::BITS</code>  https://doc.rust-lang.org/beta/core/net/struct.Ipv4Addr.html#associatedconstant.BITS</li>
<li><code>Ipv4Addr::to_bits</code>  https://doc.rust-lang.org/beta/core/net/struct.Ipv4Addr.html#method.to_bits</li>
<li><code>Ipv4Addr::from_bits</code>  https://doc.rust-lang.org/beta/core/net/struct.Ipv4Addr.html#method.from_bits</li>
<li><code>Ipv6Addr::BITS</code>  https://doc.rust-lang.org/beta/core/net/struct.Ipv6Addr.html#associatedconstant.BITS</li>
<li><code>Ipv6Addr::to_bits</code>  https://doc.rust-lang.org/beta/core/net/struct.Ipv6Addr.html#method.to_bits</li>
<li><code>Ipv6Addr::from_bits</code>  https://doc.rust-lang.org/beta/core/net/struct.Ipv6Addr.html#method.from_bits</li>
<li><code>Vec::&lt;[T; N]&gt;::into_flattened</code>  https://doc.rust-lang.org/beta/alloc/vec/struct.Vec.html#method.into_flattened</li>
<li><code>&lt;[[T; N]]&gt;::as_flattened</code>  https://doc.rust-lang.org/beta/core/primitive.slice.html#method.as_flattened</li>
<li><code>&lt;[[T; N]]&gt;::as_flattened_mut</code>  https://doc.rust-lang.org/beta/core/primitive.slice.html#method.as_flattened_mut</li>
</ul>
<p>These APIs are now stable in const contexts:</p>
<ul>
<li><code>&lt;[T]&gt;::last_chunk</code>  https://doc.rust-lang.org/beta/core/primitive.slice.html#method.last_chunk</li>
<li><code>BinaryHeap::new</code>  https://doc.rust-lang.org/beta/std/collections/struct.BinaryHeap.html#method.new</li>
</ul>
<h2>Cargo</h2>
<ul>
<li>Stabilize <code>-Zcheck-cfg</code> as always enabled</li>
<li>Warn, rather than fail publish, if a target is excluded</li>
<li>Add special <code>check-cfg</code> lint config for the <code>unexpected_cfgs</code> lint</li>
<li>Stabilize <code>cargo update --precise &lt;yanked&gt;</code></li>
<li>Don&#x27;t change file permissions on <code>Cargo.toml</code> when using <code>cargo add</code></li>
<li>Support using <code>cargo fix</code> on IPv6-only networks</li>
</ul>
<h2>Rustdoc</h2>
<ul>
<li>Allow searching for references</li>
<li>Stabilize <code>custom_code_classes_in_docs</code> feature</li>
<li>fix: In cross-crate scenarios show enum variants on type aliases of enums</li>
</ul>
<h2>Compatibility Notes</h2>
<ul>
<li>rustfmt estimates line lengths differently when using non-ascii characters</li>
<li>Type aliases are now handled correctly in orphan check</li>
<li>Allow instructing rustdoc to read from stdin via <code>-</code></li>
<li><code>std::env::{set_var, remove_var}</code> can no longer be converted to safe function pointers and no longer implement the <code>Fn</code> family of traits</li>
<li>Warn (or error) when <code>Self</code> constructor from outer item is referenced in inner nested item</li>
<li>Turn <code>indirect_structural_match</code> and <code>pointer_structural_match</code> lints into hard errors</li>
<li>Make <code>where_clause_object_safety</code> lint a regular object safety violation</li>
<li>Turn <code>proc_macro_back_compat</code> lint into a hard error.</li>
<li>Detect unused structs even when implementing private traits</li>
<li><code>std::sync::ReentrantLockGuard&lt;T&gt;</code> is no longer <code>Sync</code> if <code>T: !Sync</code></li>
</ul>



    

    <h2>Patch Instructions:</h2>
    <p>
        To install this SUSE  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.5
                
                    
                        <br/>
                        <code>zypper in -t patch SUSE-2024-2777=1 openSUSE-SLE-15.5-2024-2777=1</code>
                    
                    
                
            </li>
        
            <li class="list-group-item">
                openSUSE Leap 15.6
                
                    
                        <br/>
                        <code>zypper in -t patch openSUSE-SLE-15.6-2024-2777=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-2024-2777=1</code>
                    
                    
                
            </li>
        
            <li class="list-group-item">
                Development Tools Module 15-SP6
                
                    
                        <br/>
                        <code>zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP6-2024-2777=1</code>
                    
                    
                
            </li>
        
    </ul>

    <h2>Package List:</h2>
    <ul>
        
            
                <li>
                    openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 i586)
                    <ul>
                        
                            <li>cargo-1.80.0-150500.27.18.1</li>
                        
                            <li>rust-1.80.0-150500.27.18.1</li>
                        
                            <li>cargo1.80-debuginfo-1.80.0-150500.11.3.1</li>
                        
                            <li>rust1.80-debuginfo-1.80.0-150500.11.3.1</li>
                        
                            <li>cargo1.80-1.80.0-150500.11.3.1</li>
                        
                    </ul>
                </li>
            
                <li>
                    openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 i586 nosrc)
                    <ul>
                        
                            <li>rust1.80-1.80.0-150500.11.3.1</li>
                        
                    </ul>
                </li>
            
                <li>
                    openSUSE Leap 15.5 (noarch)
                    <ul>
                        
                            <li>rust1.80-src-1.80.0-150500.11.3.1</li>
                        
                    </ul>
                </li>
            
                <li>
                    openSUSE Leap 15.5 (nosrc)
                    <ul>
                        
                            <li>rust1.80-test-1.80.0-150500.11.3.1</li>
                        
                    </ul>
                </li>
            
        
            
                <li>
                    openSUSE Leap 15.6 (aarch64 ppc64le s390x x86_64)
                    <ul>
                        
                            <li>cargo-1.80.0-150500.27.18.1</li>
                        
                            <li>rust-1.80.0-150500.27.18.1</li>
                        
                            <li>cargo1.80-debuginfo-1.80.0-150500.11.3.1</li>
                        
                            <li>rust1.80-debuginfo-1.80.0-150500.11.3.1</li>
                        
                            <li>cargo1.80-1.80.0-150500.11.3.1</li>
                        
                    </ul>
                </li>
            
                <li>
                    openSUSE Leap 15.6 (aarch64 ppc64le s390x x86_64 nosrc)
                    <ul>
                        
                            <li>rust1.80-1.80.0-150500.11.3.1</li>
                        
                    </ul>
                </li>
            
                <li>
                    openSUSE Leap 15.6 (noarch)
                    <ul>
                        
                            <li>rust1.80-src-1.80.0-150500.11.3.1</li>
                        
                    </ul>
                </li>
            
        
            
                <li>
                    Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64)
                    <ul>
                        
                            <li>cargo-1.80.0-150500.27.18.1</li>
                        
                            <li>rust-1.80.0-150500.27.18.1</li>
                        
                            <li>cargo1.80-debuginfo-1.80.0-150500.11.3.1</li>
                        
                            <li>rust1.80-debuginfo-1.80.0-150500.11.3.1</li>
                        
                            <li>cargo1.80-1.80.0-150500.11.3.1</li>
                        
                    </ul>
                </li>
            
                <li>
                    Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64 nosrc)
                    <ul>
                        
                            <li>rust1.80-1.80.0-150500.11.3.1</li>
                        
                    </ul>
                </li>
            
                <li>
                    Development Tools Module 15-SP5 (noarch)
                    <ul>
                        
                            <li>rust1.80-src-1.80.0-150500.11.3.1</li>
                        
                    </ul>
                </li>
            
        
            
                <li>
                    Development Tools Module 15-SP6 (aarch64 ppc64le s390x x86_64)
                    <ul>
                        
                            <li>cargo-1.80.0-150500.27.18.1</li>
                        
                            <li>rust-1.80.0-150500.27.18.1</li>
                        
                            <li>cargo1.80-debuginfo-1.80.0-150500.11.3.1</li>
                        
                            <li>rust1.80-debuginfo-1.80.0-150500.11.3.1</li>
                        
                            <li>cargo1.80-1.80.0-150500.11.3.1</li>
                        
                    </ul>
                </li>
            
                <li>
                    Development Tools Module 15-SP6 (aarch64 ppc64le s390x x86_64 nosrc)
                    <ul>
                        
                            <li>rust1.80-1.80.0-150500.11.3.1</li>
                        
                    </ul>
                </li>
            
                <li>
                    Development Tools Module 15-SP6 (noarch)
                    <ul>
                        
                            <li>rust1.80-src-1.80.0-150500.11.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>