diff --git a/ignore-Wstring-conversion.patch b/ignore-Wstring-conversion.patch index fc5b865..39483df 100644 --- a/ignore-Wstring-conversion.patch +++ b/ignore-Wstring-conversion.patch @@ -1,8 +1,8 @@ -Index: rustc-1.42.0-src/src/librustc_llvm/build.rs +Index: rustc-1.44.1-src/src/librustc_llvm/build.rs =================================================================== ---- rustc-1.42.0-src.orig/src/librustc_llvm/build.rs -+++ rustc-1.42.0-src/src/librustc_llvm/build.rs -@@ -135,6 +135,12 @@ fn main() { +--- rustc-1.44.1-src.orig/src/librustc_llvm/build.rs ++++ rustc-1.44.1-src/src/librustc_llvm/build.rs +@@ -145,6 +145,12 @@ fn main() { continue; } diff --git a/rust-1.43.0-aarch64-unknown-linux-gnu.tar.xz b/rust-1.43.0-aarch64-unknown-linux-gnu.tar.xz deleted file mode 100644 index 0934e09..0000000 --- a/rust-1.43.0-aarch64-unknown-linux-gnu.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5d1bcbf7575be72c4775c89098366158ee87905423342196a6ef0c1b3d3f1140 -size 103995164 diff --git a/rust-1.43.0-armv7-unknown-linux-gnueabihf.tar.xz b/rust-1.43.0-armv7-unknown-linux-gnueabihf.tar.xz deleted file mode 100644 index 91bbac8..0000000 --- a/rust-1.43.0-armv7-unknown-linux-gnueabihf.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6e045d3015949d7240af1ff990ccd59391958a6be5e8bc3baa5210914fa6ebde -size 108910044 diff --git a/rust-1.43.0-i686-unknown-linux-gnu.tar.xz b/rust-1.43.0-i686-unknown-linux-gnu.tar.xz deleted file mode 100644 index 0e2cc3e..0000000 --- a/rust-1.43.0-i686-unknown-linux-gnu.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:871b87937e7dc774a2d0f7788520a215efefb7369b4968fe3811d2cbe8f7244a -size 126712424 diff --git a/rust-1.43.0-powerpc-unknown-linux-gnu.tar.xz b/rust-1.43.0-powerpc-unknown-linux-gnu.tar.xz deleted file mode 100644 index d8da8b2..0000000 --- a/rust-1.43.0-powerpc-unknown-linux-gnu.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c27dc3c10aea2298d15ad90234a9d5f49865ac29a395dea40e2663ce5003e703 -size 102103936 diff --git a/rust-1.43.0-powerpc64-unknown-linux-gnu.tar.xz b/rust-1.43.0-powerpc64-unknown-linux-gnu.tar.xz deleted file mode 100644 index f9654fe..0000000 --- a/rust-1.43.0-powerpc64-unknown-linux-gnu.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ed9cee7c909ae713970c02cc0114e8cffc3fcd6d4d34c28533c4cb940fd02985 -size 109310784 diff --git a/rust-1.43.0-powerpc64le-unknown-linux-gnu.tar.xz b/rust-1.43.0-powerpc64le-unknown-linux-gnu.tar.xz deleted file mode 100644 index 7c2df26..0000000 --- a/rust-1.43.0-powerpc64le-unknown-linux-gnu.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cd1c77917576c017a67d2e7b07a01df13d30fd0bbf52e7ce4d024649ba7a2267 -size 111611976 diff --git a/rust-1.43.0-s390x-unknown-linux-gnu.tar.xz b/rust-1.43.0-s390x-unknown-linux-gnu.tar.xz deleted file mode 100644 index 1be2f4d..0000000 --- a/rust-1.43.0-s390x-unknown-linux-gnu.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d3070fdeceebd999ba132a2f65f956fd28e2e2d02db0a0f87b3454702f322133 -size 119622236 diff --git a/rust-1.43.0-x86_64-unknown-linux-gnu.tar.xz b/rust-1.43.0-x86_64-unknown-linux-gnu.tar.xz deleted file mode 100644 index 47434fd..0000000 --- a/rust-1.43.0-x86_64-unknown-linux-gnu.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:af633676caffaaecfb2600ec617d84e41811e7a6fe438760a97c5404afecdd6b -size 112598556 diff --git a/rust-1.43.1-aarch64-unknown-linux-gnu.tar.xz b/rust-1.43.1-aarch64-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..f5bf593 --- /dev/null +++ b/rust-1.43.1-aarch64-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8d8f6b881065c8cfc6b8df922907df838368fa60ce746910324f0ca1009163f +size 104148868 diff --git a/rust-1.43.1-armv7-unknown-linux-gnueabihf.tar.xz b/rust-1.43.1-armv7-unknown-linux-gnueabihf.tar.xz new file mode 100644 index 0000000..6ad4c89 --- /dev/null +++ b/rust-1.43.1-armv7-unknown-linux-gnueabihf.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0587b115d7dc01b8116ae4c395086fa2f45fefbb56b185ef7359139019d82ed +size 108430484 diff --git a/rust-1.43.1-i686-unknown-linux-gnu.tar.xz b/rust-1.43.1-i686-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..d073ff5 --- /dev/null +++ b/rust-1.43.1-i686-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:171dc7cba06b7204604cdf3fac7669299e14a3e2d6de5a30c4be028f815ad1df +size 125731548 diff --git a/rust-1.43.1-powerpc-unknown-linux-gnu.tar.xz b/rust-1.43.1-powerpc-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..f37cbf7 --- /dev/null +++ b/rust-1.43.1-powerpc-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:daf0bc829eef4b78583dee0ce660c54da81cb760b059006d5e9eaf299cfb81b4 +size 105007576 diff --git a/rust-1.43.1-powerpc64-unknown-linux-gnu.tar.xz b/rust-1.43.1-powerpc64-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..754377e --- /dev/null +++ b/rust-1.43.1-powerpc64-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef672156f15d19eb0a91e818d11dd5f05b528f401694ed39bf612b5d321eb70c +size 107189572 diff --git a/rust-1.43.1-powerpc64le-unknown-linux-gnu.tar.xz b/rust-1.43.1-powerpc64le-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..9792489 --- /dev/null +++ b/rust-1.43.1-powerpc64le-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cbd84b34845ecddbd4cd1bda864b984d23cc0d8d12eeea8a07ffc42cad12d1c5 +size 112921244 diff --git a/rust-1.43.1-s390x-unknown-linux-gnu.tar.xz b/rust-1.43.1-s390x-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..bfdddfa --- /dev/null +++ b/rust-1.43.1-s390x-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03061a9d86033148f2f92d92149bd63f38dd72199f99ffc1c614e50bc86635d4 +size 119547480 diff --git a/rust-1.43.1-x86_64-unknown-linux-gnu.tar.xz b/rust-1.43.1-x86_64-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000..0e81813 --- /dev/null +++ b/rust-1.43.1-x86_64-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59c4137b8b6a27c94a5b6c42e612e3d8d022e2aa12b0ac8ede662048b329fe94 +size 112817212 diff --git a/rust-pr70163-prepare-for-llvm-10-upgrade.patch b/rust-pr70163-prepare-for-llvm-10-upgrade.patch deleted file mode 100644 index d406231..0000000 --- a/rust-pr70163-prepare-for-llvm-10-upgrade.patch +++ /dev/null @@ -1,175 +0,0 @@ -commit 374ab25585f0a817fe7bd6986737f12347b12d0b (from 1add455ec6f81045e7651c6225902823f5d4fbfa) -Merge: 1add455ec6f8 497f879b1e24 -Author: bors -Date: Tue Mar 24 12:42:54 2020 +0000 - - Auto merge of #70163 - nikic:llvm-10-preparation, r=cuviper - - Prepare for LLVM 10 upgrade - - This is #67759 minus the submodule update. - - * Fix two compatibility issues in the rustllvm wrapper. - * Update data layout strings in tests. - * Fix LLVM version comparison (this become a problem because the major version has two digits now). - - r? @cuviper - -Index: rustc-1.43.0-src/src/bootstrap/test.rs -=================================================================== ---- rustc-1.43.0-src.orig/src/bootstrap/test.rs -+++ rustc-1.43.0-src/src/bootstrap/test.rs -@@ -1142,6 +1142,8 @@ impl Step for Compiletest { - let llvm_config = builder.ensure(native::Llvm { target: builder.config.build }); - if !builder.config.dry_run { - let llvm_version = output(Command::new(&llvm_config).arg("--version")); -+ // Remove trailing newline from llvm-config output. -+ let llvm_version = llvm_version.trim_end(); - cmd.arg("--llvm-version").arg(llvm_version); - } - if !builder.is_rust_llvm(target) { -Index: rustc-1.43.0-src/src/rustllvm/PassWrapper.cpp -=================================================================== ---- rustc-1.43.0-src.orig/src/rustllvm/PassWrapper.cpp -+++ rustc-1.43.0-src/src/rustllvm/PassWrapper.cpp -@@ -67,7 +67,11 @@ extern "C" void LLVMInitializePasses() { - } - - extern "C" void LLVMTimeTraceProfilerInitialize() { --#if LLVM_VERSION_GE(9, 0) -+#if LLVM_VERSION_GE(10, 0) -+ timeTraceProfilerInitialize( -+ /* TimeTraceGranularity */ 0, -+ /* ProcName */ "rustc"); -+#elif LLVM_VERSION_GE(9, 0) - timeTraceProfilerInitialize(); - #endif - } -Index: rustc-1.43.0-src/src/rustllvm/RustWrapper.cpp -=================================================================== ---- rustc-1.43.0-src.orig/src/rustllvm/RustWrapper.cpp -+++ rustc-1.43.0-src/src/rustllvm/RustWrapper.cpp -@@ -1328,8 +1328,13 @@ extern "C" LLVMValueRef LLVMRustBuildMem - LLVMValueRef Dst, unsigned DstAlign, - LLVMValueRef Val, - LLVMValueRef Size, bool IsVolatile) { -+#if LLVM_VERSION_GE(10, 0) -+ return wrap(unwrap(B)->CreateMemSet( -+ unwrap(Dst), unwrap(Val), unwrap(Size), MaybeAlign(DstAlign), IsVolatile)); -+#else - return wrap(unwrap(B)->CreateMemSet( - unwrap(Dst), unwrap(Val), unwrap(Size), DstAlign, IsVolatile)); -+#endif - } - - extern "C" LLVMValueRef -Index: rustc-1.43.0-src/src/test/run-make-fulldeps/target-specs/my-awesome-platform.json -=================================================================== ---- rustc-1.43.0-src.orig/src/test/run-make-fulldeps/target-specs/my-awesome-platform.json -+++ rustc-1.43.0-src/src/test/run-make-fulldeps/target-specs/my-awesome-platform.json -@@ -1,5 +1,5 @@ - { -- "data-layout": "e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128", -+ "data-layout": "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128", - "linker-flavor": "gcc", - "llvm-target": "i686-unknown-linux-gnu", - "target-endian": "little", -Index: rustc-1.43.0-src/src/test/run-make-fulldeps/target-specs/my-x86_64-unknown-linux-gnu-platform.json -=================================================================== ---- rustc-1.43.0-src.orig/src/test/run-make-fulldeps/target-specs/my-x86_64-unknown-linux-gnu-platform.json -+++ rustc-1.43.0-src/src/test/run-make-fulldeps/target-specs/my-x86_64-unknown-linux-gnu-platform.json -@@ -1,6 +1,6 @@ - { - "pre-link-args": {"gcc": ["-m64"]}, -- "data-layout": "e-m:e-i64:64-f80:128-n8:16:32:64-S128", -+ "data-layout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", - "linker-flavor": "gcc", - "llvm-target": "x86_64-unknown-linux-gnu", - "target-endian": "little", -Index: rustc-1.43.0-src/src/tools/compiletest/src/header.rs -=================================================================== ---- rustc-1.43.0-src.orig/src/tools/compiletest/src/header.rs -+++ rustc-1.43.0-src/src/tools/compiletest/src/header.rs -@@ -191,6 +191,7 @@ impl EarlyProps { - return true; - } - if let Some(ref actual_version) = config.llvm_version { -+ let actual_version = version_to_int(actual_version); - if line.starts_with("min-llvm-version") { - let min_version = line - .trim_end() -@@ -199,7 +200,7 @@ impl EarlyProps { - .expect("Malformed llvm version directive"); - // Ignore if actual version is smaller the minimum required - // version -- &actual_version[..] < min_version -+ actual_version < version_to_int(min_version) - } else if line.starts_with("min-system-llvm-version") { - let min_version = line - .trim_end() -@@ -208,7 +209,7 @@ impl EarlyProps { - .expect("Malformed llvm version directive"); - // Ignore if using system LLVM and actual version - // is smaller the minimum required version -- config.system_llvm && &actual_version[..] < min_version -+ config.system_llvm && actual_version < version_to_int(min_version) - } else if line.starts_with("ignore-llvm-version") { - // Syntax is: "ignore-llvm-version [- ]" - let range_components = line -@@ -219,15 +220,15 @@ impl EarlyProps { - .take(3) // 3 or more = invalid, so take at most 3. - .collect::>(); - match range_components.len() { -- 1 => &actual_version[..] == range_components[0], -+ 1 => actual_version == version_to_int(range_components[0]), - 2 => { -- let v_min = range_components[0]; -- let v_max = range_components[1]; -+ let v_min = version_to_int(range_components[0]); -+ let v_max = version_to_int(range_components[1]); - if v_max < v_min { - panic!("Malformed LLVM version range: max < min") - } - // Ignore if version lies inside of range. -- &actual_version[..] >= v_min && &actual_version[..] <= v_max -+ actual_version >= v_min && actual_version <= v_max - } - _ => panic!("Malformed LLVM version directive"), - } -@@ -238,6 +239,20 @@ impl EarlyProps { - false - } - } -+ -+ fn version_to_int(version: &str) -> u32 { -+ let version_without_suffix = version.split('-').next().unwrap(); -+ let components: Vec = version_without_suffix -+ .split('.') -+ .map(|s| s.parse().expect("Malformed version component")) -+ .collect(); -+ match components.len() { -+ 1 => components[0] * 10000, -+ 2 => components[0] * 10000 + components[1] * 100, -+ 3 => components[0] * 10000 + components[1] * 100 + components[2], -+ _ => panic!("Malformed version"), -+ } -+ } - } - } - -Index: rustc-1.43.0-src/src/tools/compiletest/src/header/tests.rs -=================================================================== ---- rustc-1.43.0-src.orig/src/tools/compiletest/src/header/tests.rs -+++ rustc-1.43.0-src/src/tools/compiletest/src/header/tests.rs -@@ -122,9 +122,8 @@ fn llvm_version() { - config.llvm_version = Some("9.3.1-rust-1.43.0-dev".to_owned()); - assert!(!parse_rs(&config, "// min-llvm-version 9.2").ignore); - -- // FIXME. -- // config.llvm_version = Some("10.0.0-rust".to_owned()); -- // assert!(!parse_rs(&config, "// min-llvm-version 9.0").ignore); -+ config.llvm_version = Some("10.0.0-rust".to_owned()); -+ assert!(!parse_rs(&config, "// min-llvm-version 9.0").ignore); - } - - #[test] diff --git a/rust.changes b/rust.changes index 3eca6bd..8d4ca3a 100644 --- a/rust.changes +++ b/rust.changes @@ -1,3 +1,78 @@ +------------------------------------------------------------------- +Thu Aug 6 08:26:41 UTC 2020 - MichaƂ Rostecki + +- Update to version 1.44.1 + * rustfmt accepts rustfmt_skip in cfg_attr again. + * Don't hash executable filenames on apple platforms, fixing backtraces. + * Fix crashes when finding backtrace on macOS. + * Clippy applies lint levels into different files. +- Update to version 1.44.0 + + Language + - You can now use `async/.await` with `#[no_std]` enabled. + - Added the `unused_braces` lint. + - Expansion-driven outline module parsing + + Compiler + - Rustc now respects the `-C codegen-units` flag in incremental mode. + Additionally when in incremental mode rustc defaults to 256 codegen units. + - Refactored `catch_unwind` to have zero-cost, unless unwinding is enabled and + a panic is thrown. + - Added tier 3\* support for the `aarch64-unknown-none` and + `aarch64-unknown-none-softfloat` targets. + - Added tier 3 support for `arm64-apple-tvos` and + `x86_64-apple-tvos` targets. + + Libraries + - Special cased `vec![]` to map directly to `Vec::new()`. This allows + `vec![]` to be able to be used in `const` contexts. + - `convert::Infallible` now implements `Hash`. + - `OsString` now implements `DerefMut` and `IndexMut` returning + a `&mut OsStr`. + - Unicode 13 is now supported. + - `String` now implements `From<&mut str>`. + - `IoSlice` now implements `Copy`. + - `Vec` now implements `From<[T; N]>`. Where `N` is at most 32. + - `proc_macro::LexError` now implements `fmt::Display` and `Error`. + - `from_le_bytes`, `to_le_bytes`, `from_be_bytes`, `to_be_bytes`, + `from_ne_bytes`, and `to_ne_bytes` methods are now `const` for all + integer types. + + Stabilizd APIs + - [`PathBuf::with_capacity`] + - [`PathBuf::capacity`] + - [`PathBuf::clear`] + - [`PathBuf::reserve`] + - [`PathBuf::reserve_exact`] + - [`PathBuf::shrink_to_fit`] + - [`f32::to_int_unchecked`] + - [`f64::to_int_unchecked`] + - [`Layout::align_to`] + - [`Layout::pad_to_align`] + - [`Layout::array`] + - [`Layout::extend`] + + Cargo + - Added the `cargo tree` command which will print a tree graph of + your dependencies + + Misc + - Rustdoc now allows you to specify `--crate-version` to have rustdoc include + the version in the sidebar. + + Compatibility Notes + - Rustc now correctly generates static libraries on Windows GNU targets with + the `.a` extension, rather than the previous `.lib`. + - Removed the `-C no_integrated_as` flag from rustc. + - The `file_name` property in JSON output of macro errors now points the actual + source file rather than the previous format of ``. + **Note:** this may not point to a file that actually exists on the user's system. + - The minimum required external LLVM version has been bumped to LLVM 8. + - `mem::{zeroed, uninitialised}` will now panic when used with types that do + not allow zero initialization such as `NonZeroU8`. This was + previously a warning. + - In 1.45.0 (the next release) converting a `f64` to `u32` using the `as` + operator has been defined as a saturating operation. This was previously + undefined behaviour, but you can use the `{f64, f32}::to_int_unchecked` methods to + continue using the current behaviour, which may be desirable in rare performance + sensitive situations. +- Rebased patches: + + ignore-Wstring-conversion.patch (offset / fuzz) + + rust-pr70163-prepare-for-llvm-10-upgrade.patch dropped (merged upstream) + ------------------------------------------------------------------- Wed May 20 12:23:40 UTC 2020 - Martin Sirringhaus diff --git a/rust.spec b/rust.spec index 9316c96..152c561 100644 --- a/rust.spec +++ b/rust.spec @@ -17,12 +17,12 @@ # -%global version_current 1.43.1 -%global version_previous 1.43.0 -%global version_bootstrap 1.43.0 +%global version_current 1.44.1 +%global version_previous 1.43.1 +%global version_bootstrap 1.43.1 # some sub-packages are versioned independently -%global rustfmt_version 1.4.12 +%global rustfmt_version 1.4.16 %global clippy_version 0.0.212 # Build the rust target triple. @@ -136,7 +136,6 @@ Source1000: README.suse-maint # PATCH-FIX-OPENSUSE: edit src/librustc_llvm/build.rs to ignore GCC incompatible flag Patch0: ignore-Wstring-conversion.patch # PATCH-FIX-UPSTREAM: fix compilation with llvm10 https://github.com/rust-lang/rust/issues/71573 -Patch1: rust-pr70163-prepare-for-llvm-10-upgrade.patch BuildRequires: ccache BuildRequires: curl BuildRequires: fdupes @@ -310,9 +309,9 @@ A tool for formatting Rust code according to style guidelines. %package -n clippy Summary: Lints to catch common mistakes and improve Rust code +# /usr/bin/clippy-driver is dynamically linked against internal rustc libs License: MPL-2.0 Group: Development/Languages/Rust -# /usr/bin/clippy-driver is dynamically linked against internal rustc libs Requires: %{name} = %{version} Requires: cargo = %{version} Provides: clippy = %{clippy_version} @@ -336,10 +335,10 @@ Cargo downloads dependencies of Rust projects and compiles it. %package -n cargo-doc Summary: Documentation for Cargo -License: MIT OR Apache-2.0 -Group: Development/Languages/Rust # Cargo no longer builds its own documentation # https://github.com/rust-lang/cargo/pull/4904 +License: MIT OR Apache-2.0 +Group: Development/Languages/Rust Requires: rust-doc = %{version} BuildArch: noarch @@ -387,7 +386,6 @@ This package includes HTML documentation for Cargo. %setup -q -n rustc-%{version}-src %patch0 -p1 -%patch1 -p1 # use python3 sed -i -e "1s|#!.*|#!%{_bindir}/python3|" x.py diff --git a/rustc-1.43.1-src.tar.xz b/rustc-1.43.1-src.tar.xz deleted file mode 100644 index 03fdbe4..0000000 --- a/rustc-1.43.1-src.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eb0a103c67c4565403d9e6f84a1c708982a5e9e5b3c0d831e4d6f6451795d106 -size 94405276 diff --git a/rustc-1.44.1-src.tar.xz b/rustc-1.44.1-src.tar.xz new file mode 100644 index 0000000..8fe7ee1 --- /dev/null +++ b/rustc-1.44.1-src.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0386295dd5f2c7842835a509e4c57989eec6c29f989a1c85478b0e06f9d38ea +size 94756856