[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#931245: unblock: encoding-rs/0.8.15-2



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package encoding-rs

Last minute, we had to update rustc to facilitate the packaging
of Firefox ESR 68.
However, this new version of rustc, platform intrinsics crate aren't
supported anymore:
https://github.com/rust-lang/rust/pull/57416

This broke the rust-simd package.
This encoding-rs version is removing the dep.

The patch is big because most of it is generated code.
However, I am not worried because:
* the rust programming language is doing a huge number of checks at 
  compilation time.
* ripgrep (the main program using encoding-rs) testsuite executes
  without any issue.

unblock encoding-rs/0.8.15-2

-- System Information:
Debian Release: 10.0
  APT prefers unstable
  APT policy: (600, 'unstable'), (500, 'buildd-unstable'), (500, 'stable'), (300, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-5-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff -Nru rust-encoding-rs-0.8.15/debian/0001-fix-the-copyright.patch rust-encoding-rs-0.8.15/debian/0001-fix-the-copyright.patch
--- rust-encoding-rs-0.8.15/debian/0001-fix-the-copyright.patch	2019-02-03 10:33:38.000000000 +0100
+++ rust-encoding-rs-0.8.15/debian/0001-fix-the-copyright.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-From 0181b7b648e177772fcaf9c8f6c1614f5055ce59 Mon Sep 17 00:00:00 2001
-From: Sylvestre Ledru <sylvestre@mozilla.com>
-Date: Sat, 14 Jul 2018 18:04:25 +0200
-Subject: [PATCH] fix the copyright
-
----
- src/encoding-rs/debian/copyright | 6 +-----
- 1 file changed, 1 insertion(+), 5 deletions(-)
-
-diff --git a/src/encoding-rs/debian/copyright b/src/encoding-rs/debian/copyright
-index 73b469a..87e40d2 100644
---- a/src/encoding-rs/debian/copyright
-+++ b/src/encoding-rs/debian/copyright
-@@ -5,12 +5,8 @@ Source: https://github.com/hsivonen/encoding_rs
- 
- Files: *
- Copyright: 2013-2016 Henri Sivonen <hsivonen@hsivonen.fi>
-+ 2015-2016 Mozilla Foundation
- License: MIT or Apache-2.0
--Comment:
-- FIXME (overlay): Since upstream copyright years are not available in
-- Cargo.toml, they were extracted from the upstream Git repository. This may not
-- be correct information so you should review and fix this before uploading to
-- the archive.
- 
- Files: debian/*
- Copyright:
--- 
-2.17.0
-
diff -Nru rust-encoding-rs-0.8.15/debian/cargo-checksum.json rust-encoding-rs-0.8.15/debian/cargo-checksum.json
--- rust-encoding-rs-0.8.15/debian/cargo-checksum.json	2019-02-03 10:33:38.000000000 +0100
+++ rust-encoding-rs-0.8.15/debian/cargo-checksum.json	2019-06-29 08:46:08.000000000 +0200
@@ -1 +1 @@
-{"package":"fd251508d65030820f3a4317af2248180db337fdb25d89967956242580277813","files":{}}
+{"package":"Could not get crate checksum","files":{}}
diff -Nru rust-encoding-rs-0.8.15/debian/changelog rust-encoding-rs-0.8.15/debian/changelog
--- rust-encoding-rs-0.8.15/debian/changelog	2019-02-03 10:33:38.000000000 +0100
+++ rust-encoding-rs-0.8.15/debian/changelog	2019-06-29 08:46:08.000000000 +0200
@@ -1,3 +1,9 @@
+rust-encoding-rs (0.8.15-2) unstable; urgency=high
+
+  * Disable simd to get ripgrep in buster
+
+ -- kpcyrd <git@rxv.cc>  Sat, 29 Jun 2019 08:46:08 +0200
+
 rust-encoding-rs (0.8.15-1) unstable; urgency=medium
 
   * Package encoding_rs 0.8.15 from crates.io using debcargo 2.2.10
diff -Nru rust-encoding-rs-0.8.15/debian/control rust-encoding-rs-0.8.15/debian/control
--- rust-encoding-rs-0.8.15/debian/control	2019-02-03 10:33:38.000000000 +0100
+++ rust-encoding-rs-0.8.15/debian/control	2019-06-29 08:46:08.000000000 +0200
@@ -2,7 +2,7 @@
 Section: rust
 Priority: optional
 Build-Depends: debhelper (>= 11),
- dh-cargo (>= 15),
+ dh-cargo (>= 18),
  cargo:native <!nocheck>,
  rustc:native <!nocheck>,
  libstd-rust-dev <!nocheck>,
@@ -10,7 +10,8 @@
 Maintainer: Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
 Uploaders:
  Sylvestre Ledru <sylvestre@debian.org>,
- Wolfgang Silbermayr <wolfgang@silbermayr.at>
+ Wolfgang Silbermayr <wolfgang@silbermayr.at>,
+ kpcyrd <git@rxv.cc>
 Standards-Version: 4.2.0
 Vcs-Git: https://salsa.debian.org/rust-team/debcargo-conf.git [src/encoding-rs]
 Vcs-Browser: https://salsa.debian.org/rust-team/debcargo-conf/tree/master/src/encoding-rs
@@ -25,9 +26,7 @@
  librust-cfg-if-0.1+default-dev
 Suggests:
  librust-encoding-rs+fast-legacy-encode-dev (= ${binary:Version}),
- librust-encoding-rs+serde-dev (= ${binary:Version}),
- librust-encoding-rs+simd-dev (= ${binary:Version}),
- librust-encoding-rs+simd-accel-dev (= ${binary:Version})
+ librust-encoding-rs+serde-dev (= ${binary:Version})
 Provides:
  librust-encoding-rs+default-dev (= ${binary:Version}),
  librust-encoding-rs+fast-big5-hanzi-encode-dev (= ${binary:Version}),
@@ -38,6 +37,7 @@
  librust-encoding-rs+less-slow-big5-hanzi-encode-dev (= ${binary:Version}),
  librust-encoding-rs+less-slow-gb-hanzi-encode-dev (= ${binary:Version}),
  librust-encoding-rs+less-slow-kanji-encode-dev (= ${binary:Version}),
+ librust-encoding-rs+simd-accel-dev (= ${binary:Version}),
  librust-encoding-rs-0-dev (= ${binary:Version}),
  librust-encoding-rs-0+default-dev (= ${binary:Version}),
  librust-encoding-rs-0+fast-big5-hanzi-encode-dev (= ${binary:Version}),
@@ -48,6 +48,7 @@
  librust-encoding-rs-0+less-slow-big5-hanzi-encode-dev (= ${binary:Version}),
  librust-encoding-rs-0+less-slow-gb-hanzi-encode-dev (= ${binary:Version}),
  librust-encoding-rs-0+less-slow-kanji-encode-dev (= ${binary:Version}),
+ librust-encoding-rs-0+simd-accel-dev (= ${binary:Version}),
  librust-encoding-rs-0.8-dev (= ${binary:Version}),
  librust-encoding-rs-0.8+default-dev (= ${binary:Version}),
  librust-encoding-rs-0.8+fast-big5-hanzi-encode-dev (= ${binary:Version}),
@@ -58,6 +59,7 @@
  librust-encoding-rs-0.8+less-slow-big5-hanzi-encode-dev (= ${binary:Version}),
  librust-encoding-rs-0.8+less-slow-gb-hanzi-encode-dev (= ${binary:Version}),
  librust-encoding-rs-0.8+less-slow-kanji-encode-dev (= ${binary:Version}),
+ librust-encoding-rs-0.8+simd-accel-dev (= ${binary:Version}),
  librust-encoding-rs-0.8.15-dev (= ${binary:Version}),
  librust-encoding-rs-0.8.15+default-dev (= ${binary:Version}),
  librust-encoding-rs-0.8.15+fast-big5-hanzi-encode-dev (= ${binary:Version}),
@@ -67,7 +69,8 @@
  librust-encoding-rs-0.8.15+fast-kanji-encode-dev (= ${binary:Version}),
  librust-encoding-rs-0.8.15+less-slow-big5-hanzi-encode-dev (= ${binary:Version}),
  librust-encoding-rs-0.8.15+less-slow-gb-hanzi-encode-dev (= ${binary:Version}),
- librust-encoding-rs-0.8.15+less-slow-kanji-encode-dev (= ${binary:Version})
+ librust-encoding-rs-0.8.15+less-slow-kanji-encode-dev (= ${binary:Version}),
+ librust-encoding-rs-0.8.15+simd-accel-dev (= ${binary:Version})
 Description: Gecko-oriented Encoding Standard implementation - Rust source code
  This package contains the source for the Rust encoding_rs crate, packaged by
  debcargo for use with cargo and dh-cargo.
@@ -88,7 +91,7 @@
  librust-encoding-rs-0.8+fast-legacy-encode-dev (= ${binary:Version}),
  librust-encoding-rs-0.8.15+fast-legacy-encode-dev (= ${binary:Version})
 Description: Gecko-oriented Encoding Standard implementation - feature "fast-legacy-encode"
- This metapackage enables feature fast-legacy-encode for the Rust encoding_rs
+ This metapackage enables feature "fast-legacy-encode" for the Rust encoding_rs
  crate, by pulling in any additional dependencies needed by that feature.
 
 Package: librust-encoding-rs+serde-dev
@@ -103,35 +106,5 @@
  librust-encoding-rs-0.8+serde-dev (= ${binary:Version}),
  librust-encoding-rs-0.8.15+serde-dev (= ${binary:Version})
 Description: Gecko-oriented Encoding Standard implementation - feature "serde"
- This metapackage enables feature serde for the Rust encoding_rs crate, by
- pulling in any additional dependencies needed by that feature.
-
-Package: librust-encoding-rs+simd-dev
-Architecture: any
-Multi-Arch: same
-Depends:
- ${misc:Depends},
- librust-encoding-rs-dev (= ${binary:Version}),
- librust-simd-0.2+default-dev (>= 0.2.3-~~)
-Provides:
- librust-encoding-rs-0+simd-dev (= ${binary:Version}),
- librust-encoding-rs-0.8+simd-dev (= ${binary:Version}),
- librust-encoding-rs-0.8.15+simd-dev (= ${binary:Version})
-Description: Gecko-oriented Encoding Standard implementation - feature "simd"
- This metapackage enables feature simd for the Rust encoding_rs crate, by
- pulling in any additional dependencies needed by that feature.
-
-Package: librust-encoding-rs+simd-accel-dev
-Architecture: any
-Multi-Arch: same
-Depends:
- ${misc:Depends},
- librust-encoding-rs-dev (= ${binary:Version}),
- librust-simd-0.2+default-dev (>= 0.2.3-~~)
-Provides:
- librust-encoding-rs-0+simd-accel-dev (= ${binary:Version}),
- librust-encoding-rs-0.8+simd-accel-dev (= ${binary:Version}),
- librust-encoding-rs-0.8.15+simd-accel-dev (= ${binary:Version})
-Description: Gecko-oriented Encoding Standard implementation - feature "simd-accel"
- This metapackage enables feature simd-accel for the Rust encoding_rs crate, by
+ This metapackage enables feature "serde" for the Rust encoding_rs crate, by
  pulling in any additional dependencies needed by that feature.
diff -Nru rust-encoding-rs-0.8.15/debian/copyright.debcargo.hint rust-encoding-rs-0.8.15/debian/copyright.debcargo.hint
--- rust-encoding-rs-0.8.15/debian/copyright.debcargo.hint	2019-02-03 10:33:38.000000000 +0100
+++ rust-encoding-rs-0.8.15/debian/copyright.debcargo.hint	2019-06-29 08:46:08.000000000 +0200
@@ -181,6 +181,7 @@
  2018-2019 Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
  2018-2019 Sylvestre Ledru <sylvestre@debian.org>
  2018-2019 Wolfgang Silbermayr <wolfgang@silbermayr.at>
+ 2018-2019 kpcyrd <git@rxv.cc>
 License: MIT or Apache-2.0
 
 License: Apache-2.0
diff -Nru rust-encoding-rs-0.8.15/debian/debcargo.toml rust-encoding-rs-0.8.15/debian/debcargo.toml
--- rust-encoding-rs-0.8.15/debian/debcargo.toml	2019-02-03 10:33:38.000000000 +0100
+++ rust-encoding-rs-0.8.15/debian/debcargo.toml	2019-06-29 08:46:08.000000000 +0200
@@ -2,6 +2,7 @@
 uploaders = [
   "Sylvestre Ledru <sylvestre@debian.org>",
   "Wolfgang Silbermayr <wolfgang@silbermayr.at>",
+  "kpcyrd <git@rxv.cc>",
 ]
 
 # The auto-generated summary is too long.
diff -Nru rust-encoding-rs-0.8.15/debian/patches/disable-simd.diff rust-encoding-rs-0.8.15/debian/patches/disable-simd.diff
--- rust-encoding-rs-0.8.15/debian/patches/disable-simd.diff	1970-01-01 01:00:00.000000000 +0100
+++ rust-encoding-rs-0.8.15/debian/patches/disable-simd.diff	2019-06-29 08:46:08.000000000 +0200
@@ -0,0 +1,284 @@
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -31,9 +31,6 @@ version = "0.1.0"
+ version = "1.0"
+ optional = true
+ 
+-[dependencies.simd]
+-version = "0.2.3"
+-optional = true
+ [dev-dependencies.bincode]
+ version = "0.8"
+ 
+@@ -53,6 +50,6 @@ fast-legacy-encode = ["fast-hangul-encod
+ less-slow-big5-hanzi-encode = []
+ less-slow-gb-hanzi-encode = []
+ less-slow-kanji-encode = []
+-simd-accel = ["simd"]
++simd-accel = []
+ [badges.travis-ci]
+ repository = "hsivonen/encoding_rs"
+--- a/build.rs
++++ b/build.rs
+@@ -1,4 +1,4 @@
+ fn main() {
+-    #[cfg(feature = "simd-accel")]
++    #[cfg(feature = "simd-accel-disabled")]
+     println!("cargo:rustc-env=RUSTC_BOOTSTRAP=1");
+ }
+--- a/src/ascii.rs
++++ b/src/ascii.rs
+@@ -22,7 +22,7 @@
+ // different approaches based on benchmarking on Raspberry Pi 3.
+ 
+ #[cfg(all(
+-    feature = "simd-accel",
++    feature = "simd-accel-disabled",
+     any(
+         target_feature = "sse2",
+         all(target_endian = "little", target_arch = "aarch64"),
+@@ -32,7 +32,7 @@
+ use simd_funcs::*;
+ 
+ cfg_if! {
+-    if #[cfg(feature = "simd-accel")] {
++    if #[cfg(feature = "simd-accel-disabled")] {
+         #[allow(unused_imports)]
+         use ::std::intrinsics::unlikely;
+         #[allow(unused_imports)]
+@@ -872,7 +872,7 @@ macro_rules! pack_simd_stride {
+ }
+ 
+ cfg_if! {
+-    if #[cfg(all(feature = "simd-accel", target_endian = "little", target_arch = "aarch64"))] {
++    if #[cfg(all(feature = "simd-accel-disabled", target_endian = "little", target_arch = "aarch64"))] {
+         // SIMD with the same instructions for aligned and unaligned loads and stores
+ 
+         pub const SIMD_STRIDE_SIZE: usize = 16;
+@@ -900,7 +900,7 @@ cfg_if! {
+         ascii_simd_unalign!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_neither_aligned);
+         latin1_simd_unalign!(unpack_latin1, u8, u16, unpack_stride_neither_aligned);
+         latin1_simd_unalign!(pack_latin1, u16, u8, pack_stride_neither_aligned);
+-    } else if #[cfg(all(feature = "simd-accel", target_endian = "little", target_feature = "neon"))] {
++    } else if #[cfg(all(feature = "simd-accel-disabled", target_endian = "little", target_feature = "neon"))] {
+         // SIMD with different instructions for aligned and unaligned loads and stores.
+         //
+         // Newer microarchitectures are not supposed to have a performance difference between
+@@ -943,7 +943,7 @@ cfg_if! {
+         ascii_simd_check_align!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_both_aligned, basic_latin_to_ascii_stride_src_aligned, basic_latin_to_ascii_stride_dst_aligned, basic_latin_to_ascii_stride_neither_aligned);
+         latin1_simd_check_align!(unpack_latin1, u8, u16, unpack_stride_both_aligned, unpack_stride_src_aligned, unpack_stride_dst_aligned, unpack_stride_neither_aligned);
+         latin1_simd_check_align!(pack_latin1, u16, u8, pack_stride_both_aligned, pack_stride_src_aligned, pack_stride_dst_aligned, pack_stride_neither_aligned);
+-    } else if #[cfg(all(feature = "simd-accel", target_feature = "sse2"))] {
++    } else if #[cfg(all(feature = "simd-accel-disabled", target_feature = "sse2"))] {
+         // SIMD with different instructions for aligned and unaligned loads and stores.
+         //
+         // Newer microarchitectures are not supposed to have a performance difference between
+@@ -1205,7 +1205,7 @@ cfg_if! {
+ }
+ 
+ cfg_if! {
+-    if #[cfg(all(feature = "simd-accel", target_endian = "little", target_arch = "disabled"))] {
++    if #[cfg(all(feature = "simd-accel-disabled", target_endian = "little", target_arch = "disabled"))] {
+         #[inline(always)]
+         pub fn validate_ascii(slice: &[u8]) -> Option<(u8, usize)> {
+             let src = slice.as_ptr();
+@@ -1233,7 +1233,7 @@ cfg_if! {
+             }
+             None
+         }
+-    } else if #[cfg(all(feature = "simd-accel", target_feature = "sse2"))] {
++    } else if #[cfg(all(feature = "simd-accel-disabled", target_feature = "sse2"))] {
+         #[inline(always)]
+         pub fn validate_ascii(slice: &[u8]) -> Option<(u8, usize)> {
+             let src = slice.as_ptr();
+@@ -1409,9 +1409,9 @@ cfg_if! {
+ }
+ 
+ cfg_if! {
+-    if #[cfg(all(feature = "simd-accel", any(target_feature = "sse2", all(target_endian = "little", target_arch = "aarch64"))))] {
++    if #[cfg(all(feature = "simd-accel-disabled", any(target_feature = "sse2", all(target_endian = "little", target_arch = "aarch64"))))] {
+ 
+-    } else if #[cfg(all(feature = "simd-accel", target_endian = "little", target_feature = "neon"))] {
++    } else if #[cfg(all(feature = "simd-accel-disabled", target_endian = "little", target_feature = "neon"))] {
+         // Even with NEON enabled, we use the ALU path for ASCII validation, because testing
+         // on Exynos 5 indicated that using NEON isn't worthwhile where there are only
+         // vector reads without vector writes.
+--- a/src/handles.rs
++++ b/src/handles.rs
+@@ -17,7 +17,7 @@
+ //! bound check at the read/write time.
+ 
+ #[cfg(all(
+-    feature = "simd-accel",
++    feature = "simd-accel-disabled",
+     any(
+         target_feature = "sse2",
+         all(target_endian = "little", target_arch = "aarch64"),
+@@ -27,7 +27,7 @@
+ use simd_funcs::*;
+ 
+ #[cfg(all(
+-    feature = "simd-accel",
++    feature = "simd-accel-disabled",
+     any(
+         target_feature = "sse2",
+         all(target_endian = "little", target_arch = "aarch64"),
+@@ -116,7 +116,7 @@ impl UnalignedU16Slice {
+         }
+     }
+ 
+-    #[cfg(feature = "simd-accel")]
++    #[cfg(feature = "simd-accel-disabled")]
+     #[inline(always)]
+     pub fn simd_at(&self, i: usize) -> u16x8 {
+         assert!(i + SIMD_STRIDE_SIZE / 2 <= self.len);
+@@ -137,7 +137,7 @@ impl UnalignedU16Slice {
+         unsafe { UnalignedU16Slice::new(self.ptr.add(from * 2), self.len - from) }
+     }
+ 
+-    #[cfg(feature = "simd-accel")]
++    #[cfg(feature = "simd-accel-disabled")]
+     #[inline(always)]
+     pub fn copy_bmp_to<E: Endian>(&self, other: &mut [u16]) -> Option<(u16, usize)> {
+         assert!(self.len <= other.len());
+@@ -172,7 +172,7 @@ impl UnalignedU16Slice {
+         None
+     }
+ 
+-    #[cfg(not(feature = "simd-accel"))]
++    #[cfg(not(feature = "simd-accel-disabled"))]
+     #[inline(always)]
+     fn copy_bmp_to<E: Endian>(&self, other: &mut [u16]) -> Option<(u16, usize)> {
+         assert!(self.len <= other.len());
+@@ -217,7 +217,7 @@ fn swap_if_opposite_endian<E: Endian>(unit: u16) -> u16 {
+     }
+ }
+ 
+-#[cfg(not(feature = "simd-accel"))]
++#[cfg(not(feature = "simd-accel-disabled"))]
+ #[inline(always)]
+ fn copy_unaligned_basic_latin_to_ascii<E: Endian>(
+     src: UnalignedU16Slice,
+@@ -226,7 +226,7 @@ fn copy_unaligned_basic_latin_to_ascii<E: Endian>(
+     copy_unaligned_basic_latin_to_ascii_alu::<E>(src, dst, 0)
+ }
+ 
+-#[cfg(feature = "simd-accel")]
++#[cfg(feature = "simd-accel-disabled")]
+ #[inline(always)]
+ fn copy_unaligned_basic_latin_to_ascii<E: Endian>(
+     src: UnalignedU16Slice,
+--- a/src/lib.rs
++++ b/src/lib.rs
+@@ -665,13 +665,13 @@
+ //! See the section [_UTF-16LE, UTF-16BE and Unicode Encoding Schemes_](#utf-16le-utf-16be-and-unicode-encoding-schemes)
+ //! for discussion about the UTF-16 family.
+ 
+-#![cfg_attr(feature = "simd-accel", feature(platform_intrinsics, core_intrinsics))]
++#![cfg_attr(feature = "simd-accel-disabled", feature(platform_intrinsics, core_intrinsics))]
+ 
+ #[macro_use]
+ extern crate cfg_if;
+ 
+ #[cfg(all(
+-    feature = "simd-accel",
++    feature = "simd-accel-disabled",
+     any(
+         target_feature = "sse2",
+         all(target_endian = "little", target_arch = "aarch64"),
+@@ -695,7 +695,7 @@ extern crate serde_json;
+ mod macros;
+ 
+ #[cfg(all(
+-    feature = "simd-accel",
++    feature = "simd-accel-disabled",
+     any(
+         target_feature = "sse2",
+         all(target_endian = "little", target_arch = "aarch64"),
+--- a/src/mem.rs
++++ b/src/mem.rs
+@@ -37,7 +37,7 @@ macro_rules! non_fuzz_debug_assert {
+ }
+ 
+ cfg_if! {
+-    if #[cfg(feature = "simd-accel")] {
++    if #[cfg(feature = "simd-accel-disabled")] {
+         use ::std::intrinsics::likely;
+         use ::std::intrinsics::unlikely;
+     } else {
+@@ -226,7 +226,7 @@ macro_rules! by_unit_check_simd {
+ }
+ 
+ cfg_if! {
+-    if #[cfg(all(feature = "simd-accel", any(target_feature = "sse2", all(target_endian = "little", target_arch = "aarch64"), all(target_endian = "little", target_feature = "neon"))))] {
++    if #[cfg(all(feature = "simd-accel-disabled", any(target_feature = "sse2", all(target_endian = "little", target_arch = "aarch64"), all(target_endian = "little", target_feature = "neon"))))] {
+         use simd_funcs::*;
+         use simd::u8x16;
+         use simd::u16x8;
+@@ -358,7 +358,7 @@ fn utf16_valid_up_to_alu(buffer: &[u16]) -> (usize, bool) {
+ }
+ 
+ cfg_if! {
+-    if #[cfg(all(feature = "simd-accel", any(target_feature = "sse2", all(target_endian = "little", target_arch = "aarch64"), all(target_endian = "little", target_feature = "neon"))))] {
++    if #[cfg(all(feature = "simd-accel-disabled", any(target_feature = "sse2", all(target_endian = "little", target_arch = "aarch64"), all(target_endian = "little", target_feature = "neon"))))] {
+         #[inline(always)]
+         fn is_str_latin1_impl(buffer: &str) -> Option<usize> {
+             let mut offset = 0usize;
+@@ -447,7 +447,7 @@ fn is_utf8_latin1_impl(buffer: &[u8]) -> Option<usize> {
+ }
+ 
+ cfg_if! {
+-    if #[cfg(all(feature = "simd-accel", any(target_feature = "sse2", all(target_endian = "little", target_arch = "aarch64"), all(target_endian = "little", target_feature = "neon"))))] {
++    if #[cfg(all(feature = "simd-accel-disabled", any(target_feature = "sse2", all(target_endian = "little", target_arch = "aarch64"), all(target_endian = "little", target_feature = "neon"))))] {
+         #[inline(always)]
+         fn is_utf16_bidi_impl(buffer: &[u16]) -> bool {
+             let mut offset = 0usize;
+@@ -497,7 +497,7 @@ cfg_if! {
+ }
+ 
+ cfg_if! {
+-    if #[cfg(all(feature = "simd-accel", any(target_feature = "sse2", all(target_endian = "little", target_arch = "aarch64"), all(target_endian = "little", target_feature = "neon"))))] {
++    if #[cfg(all(feature = "simd-accel-disabled", any(target_feature = "sse2", all(target_endian = "little", target_arch = "aarch64"), all(target_endian = "little", target_feature = "neon"))))] {
+         #[inline(always)]
+         fn check_utf16_for_latin1_and_bidi_impl(buffer: &[u16]) -> Latin1Bidi {
+             let mut offset = 0usize;
+--- a/src/utf_8.rs
++++ b/src/utf_8.rs
+@@ -16,7 +16,7 @@ use mem::convert_utf16_to_utf8_partial;
+ use variant::*;
+ 
+ cfg_if! {
+-    if #[cfg(feature = "simd-accel")] {
++    if #[cfg(feature = "simd-accel-disabled")] {
+         use ::std::intrinsics::unlikely;
+         use ::std::intrinsics::likely;
+     } else {
+--- a/src/x_user_defined.rs
++++ b/src/x_user_defined.rs
+@@ -12,7 +12,7 @@ use handles::*;
+ use variant::*;
+ 
+ cfg_if! {
+-    if #[cfg(feature = "simd-accel")] {
++    if #[cfg(feature = "simd-accel-disabled")] {
+         use simd_funcs::*;
+         use simd::u16x8;
+ 
+@@ -72,7 +72,7 @@ impl UserDefinedDecoder {
+         Utf8Destination
+     );
+ 
+-    #[cfg(not(feature = "simd-accel"))]
++    #[cfg(not(feature = "simd-accel-disabled"))]
+     pub fn decode_to_utf16_raw(
+         &mut self,
+         src: &[u8],
+@@ -102,7 +102,7 @@ impl UserDefinedDecoder {
+         (pending, length, length)
+     }
+ 
+-    #[cfg(feature = "simd-accel")]
++    #[cfg(feature = "simd-accel-disabled")]
+     pub fn decode_to_utf16_raw(
+         &mut self,
+         src: &[u8],
diff -Nru rust-encoding-rs-0.8.15/debian/patches/series rust-encoding-rs-0.8.15/debian/patches/series
--- rust-encoding-rs-0.8.15/debian/patches/series	1970-01-01 01:00:00.000000000 +0100
+++ rust-encoding-rs-0.8.15/debian/patches/series	2019-06-29 08:46:08.000000000 +0200
@@ -0,0 +1 @@
+disable-simd.diff
diff -Nru rust-encoding-rs-0.8.15/debian/tests/control rust-encoding-rs-0.8.15/debian/tests/control
--- rust-encoding-rs-0.8.15/debian/tests/control	1970-01-01 01:00:00.000000000 +0100
+++ rust-encoding-rs-0.8.15/debian/tests/control	2019-06-29 08:46:08.000000000 +0200
@@ -0,0 +1,15 @@
+Test-Command: /usr/share/cargo/bin/cargo-auto-test encoding_rs 0.8.15 --all-targets --all-features
+Depends: dh-cargo (>= 18), librust-bincode-0.8+default-dev, librust-serde-derive-1+default-dev, librust-serde-json-1+default-dev, @
+Restrictions: allow-stderr, skip-not-installable
+
+Test-Command: /usr/share/cargo/bin/cargo-auto-test encoding_rs 0.8.15 --all-targets --no-default-features
+Depends: dh-cargo (>= 18), librust-bincode-0.8+default-dev, librust-serde-derive-1+default-dev, librust-serde-json-1+default-dev, librust-encoding-rs-dev
+Restrictions: allow-stderr, skip-not-installable
+
+Test-Command: /usr/share/cargo/bin/cargo-auto-test encoding_rs 0.8.15 --all-targets --features fast-legacy-encode
+Depends: dh-cargo (>= 18), librust-bincode-0.8+default-dev, librust-serde-derive-1+default-dev, librust-serde-json-1+default-dev, librust-encoding-rs+fast-legacy-encode-dev
+Restrictions: allow-stderr, skip-not-installable
+
+Test-Command: /usr/share/cargo/bin/cargo-auto-test encoding_rs 0.8.15 --all-targets --features serde
+Depends: dh-cargo (>= 18), librust-bincode-0.8+default-dev, librust-serde-derive-1+default-dev, librust-serde-json-1+default-dev, librust-encoding-rs+serde-dev
+Restrictions: allow-stderr, skip-not-installable

Reply to: