[Pkg-rust-maintainers] Bug#905795: rustc: Please include workaround for regression on sparc64
John Paul Adrian Glaubitz
glaubitz at physik.fu-berlin.de
Thu Aug 9 20:15:21 BST 2018
Source: rustc
Version: 1.28.0+dfsg1-2
Severity: normal
Tags: patch
User: debian-sparc at lists.debian.org
Usertags: sparc64
Hello!
With version 1.28, the Rust compiler has regressed in the sense that
it generates code with unaligned access [1].
This problem existed in the past and was supposed to be fixed [2],
however it just recently came back.
The attached patch contains a workaround for sparc64 such that
rustc will at least build again. Please include it in the next
upload.
Thanks,
Adrian
> [1] https://github.com/rust-lang/rust/issues/53181
> [2] https://github.com/rust-lang/rust/pull/45679
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - glaubitz at debian.org
`. `' Freie Universitaet Berlin - glaubitz at physik.fu-berlin.de
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
-------------- next part --------------
Description: <short summary of the patch>
TODO: Put a short summary on the line above and replace this paragraph
with a longer explanation of this change. Complete the meta-information
with other relevant fields (see below for details). To make it easier, the
information below has been extracted from the changelog. Adjust it or drop
it.
.
rustc (1.28.0+dfsg1-2) unstable; urgency=medium
.
* Switch on verbose-tests to restore the old pre-1.28 behaviour, and restore
old failure-counting logic.
* Allow 50 test failures on s390x, restored failure-counting logic avoids
more double-counts.
Author: Ximin Luo <infinity0 at debian.org>
---
The information above should follow the Patch Tagging Guidelines, please
checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
are templates for supplementary fields that you might want to add:
Origin: <vendor|upstream|other>, <url of original patch>
Bug: <url in upstream bugtracker>
Bug-Debian: https://bugs.debian.org/<bugnumber>
Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
Forwarded: <no|not-needed|url proving that it has been forwarded>
Reviewed-By: <name and email of someone who approved the patch>
Last-Update: 2018-08-09
--- rustc-1.28.0+dfsg1.orig/src/libsyntax_pos/span_encoding.rs
+++ rustc-1.28.0+dfsg1/src/libsyntax_pos/span_encoding.rs
@@ -26,7 +26,9 @@ use std::hash::{Hash, Hasher};
/// The primary goal of `Span` is to be as small as possible and fit into other structures
/// (that's why it uses `packed` as well). Decoding speed is the second priority.
/// See `SpanData` for the info on span fields in decoded representation.
-#[repr(packed)]
+
+/// Workaround for compiler bug: https://github.com/rust-lang/rust/issues/53181
+#[cfg_attr(not(any(target_arch = "sparc64", target_arch = "sparcv9")), repr(packed))]
pub struct Span(u32);
impl Copy for Span {}
More information about the Pkg-rust-maintainers
mailing list