rust: update to 1.46.0

This commit is contained in:
Johannes 2020-08-07 20:56:38 +02:00 committed by q66
parent 97bdec2ec9
commit 6d6416793c
7 changed files with 145 additions and 152 deletions

View file

@ -19,7 +19,7 @@ diff --git a/src/librustc_codegen_ssa/back/link.rs b/src/librustc_codegen_ssa/ba
index 0dd2f029..f22b4277 100644
--- a/src/librustc_codegen_ssa/back/link.rs
+++ b/src/librustc_codegen_ssa/back/link.rs
@@ -1741,9 +1741,7 @@ fn add_upstream_rust_crates<'a, B: ArchiveBuilder<'a>>(
@@ -1964,9 +1964,7 @@
}
}
@ -30,12 +30,12 @@ index 0dd2f029..f22b4277 100644
//
// 1. The upstream crate is an rlib. In this case we *must* link in the
// native dependency because the rlib is just an archive.
@@ -1792,7 +1790,19 @@ pub fn add_upstream_native_libraries(
@@ -2015,7 +2013,19 @@
continue;
}
match lib.kind {
- NativeLibraryKind::NativeUnknown => cmd.link_dylib(name),
+ NativeLibraryKind::NativeUnknown => {
- NativeLibKind::Dylib | NativeLibKind::Unspecified => cmd.link_dylib(name),
+ NativeLibKind::Dylib | NativeLibKind::Unspecified => {
+ // On some targets, like Linux, linking a static executable inhibits using
+ // dylibs at all. Force native libraries to be static, even if for example
+ // an upstream rlib was originally linked against a native shared library.
@ -48,9 +48,6 @@ index 0dd2f029..f22b4277 100644
+ cmd.link_dylib(name)
+ }
+ },
NativeLibraryKind::NativeFramework => cmd.link_framework(name),
NativeLibraryKind::NativeStaticNobundle => {
NativeLibKind::Framework => cmd.link_framework(name),
NativeLibKind::StaticNoBundle => {
// Link "static-nobundle" native libs only if the crate they originate from
--
2.26.2

View file

@ -14,20 +14,24 @@ Subject: [PATCH 04/15] Remove -nostdlib and musl_root from musl targets
src/librustc_target/spec/linux_musl_base.rs | 16 ------------
8 files changed, 3 insertions(+), 130 deletions(-)
diff --git a/config.toml.example b/config.toml.example
index ce21b634..f14a5660 100644
--- a/config.toml.example
+++ b/config.toml.example
@@ -352,9 +352,6 @@
# nightly features
#channel = "dev"
@@ -525,15 +525,6 @@
# only use static libraries. If unset, the target's default linkage is used.
#crt-static = false
-# The root location of the MUSL installation directory.
-# The root location of the musl installation directory. The library directory
-# will also need to contain libunwind.a for an unwinding implementation. Note
-# that this option only makes sense for musl targets that produce statically
-# linked binaries
-#musl-root = "..."
-
# By default the `rustc` executable is built with `-Wl,-rpath` flags on Unix
# platforms to ensure that the compiler is usable by default from the build
# directory (as it links to a number of dynamic libraries). This may not be
-# The full path to the musl libdir.
-#musl-libdir = musl-root/lib
-
# The root location of the `wasm32-wasi` sysroot.
#wasi-root = "..."
diff --git a/src/bootstrap/cc_detect.rs b/src/bootstrap/cc_detect.rs
index a236edf9..54c3cc64 100644
--- a/src/bootstrap/cc_detect.rs
@ -89,35 +93,43 @@ diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs
index 65a00db3..01fd2cf3 100644
--- a/src/bootstrap/compile.rs
+++ b/src/bootstrap/compile.rs
@@ -125,18 +125,7 @@ fn copy_third_party_objects(
target_deps.push(target);
};
@@ -169,26 +169,7 @@
t!(fs::create_dir_all(&libdir_self_contained));
let mut target_deps = vec![];
- // Copies the crt(1,i,n).o startup objects
- // Copies the CRT objects.
- //
- // Since musl supports fully static linking, we can cross link for it even
- // with a glibc-targeting toolchain, given we have the appropriate startup
- // files. As those shipped with glibc won't work, copy the ones provided by
- // musl so we have them on linux-gnu hosts.
- // rustc historically provides a more self-contained installation for musl targets
- // not requiring the presence of a native musl toolchain. For example, it can fall back
- // to using gcc from a glibc-targeting toolchain for linking.
- // To do that we have to distribute musl startup objects as a part of Rust toolchain
- // and link with them manually in the self-contained mode.
- if target.contains("musl") {
- let srcdir = builder.musl_root(target).unwrap().join("lib");
- for &obj in &["crt1.o", "crti.o", "crtn.o"] {
- copy_and_stamp(&srcdir, obj);
- let srcdir = builder.musl_libdir(target).unwrap();
- for &obj in &["crt1.o", "Scrt1.o", "rcrt1.o", "crti.o", "crtn.o"] {
- copy_and_stamp(
- builder,
- &libdir_self_contained,
- &srcdir,
- obj,
- &mut target_deps,
- DependencyType::TargetSelfContained,
- );
- }
- } else if target.ends_with("-wasi") {
+ if target.ends_with("-wasi") {
let srcdir = builder.wasi_root(target).unwrap().join("lib/wasm32-wasi");
copy_and_stamp(&srcdir, "crt1.o");
}
@@ -213,15 +202,6 @@ pub fn std_cargo(builder: &Builder<'_>, target: Interned<String>, cargo: &mut Ca
copy_and_stamp(
builder,
@@ -263,15 +244,6 @@
.arg("--manifest-path")
.arg(builder.src.join("src/libtest/Cargo.toml"));
- // Help the libc crate compile by assisting it in finding various
- // sysroot native libraries.
- if target.contains("musl") {
- if let Some(p) = builder.musl_root(target) {
- let root = format!("native={}/lib", p.to_str().unwrap());
- if let Some(p) = builder.musl_libdir(target) {
- let root = format!("native={}", p.to_str().unwrap());
- cargo.rustflag("-L").rustflag(&root);
- }
- }
@ -129,7 +141,7 @@ diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs
index 56164b74..8c46334a 100644
--- a/src/bootstrap/config.rs
+++ b/src/bootstrap/config.rs
@@ -134,8 +134,6 @@ pub struct Config {
@@ -135,8 +135,6 @@
pub print_step_timings: bool,
pub missing_tools: bool,
@ -138,15 +150,16 @@ index 56164b74..8c46334a 100644
pub prefix: Option<PathBuf>,
pub sysconfdir: Option<PathBuf>,
pub datadir: Option<PathBuf>,
@@ -171,7 +169,6 @@ pub struct Target {
@@ -172,8 +170,6 @@
pub linker: Option<PathBuf>,
pub ndk: Option<PathBuf>,
pub crt_static: Option<bool>,
- pub musl_root: Option<PathBuf>,
- pub musl_libdir: Option<PathBuf>,
pub wasi_root: Option<PathBuf>,
pub qemu_rootfs: Option<PathBuf>,
pub no_std: bool,
@@ -322,7 +319,6 @@ struct Rust {
@@ -327,7 +323,6 @@
parallel_compiler: Option<bool>,
default_linker: Option<String>,
channel: Option<String>,
@ -154,15 +167,16 @@ index 56164b74..8c46334a 100644
rpath: Option<bool>,
verbose_tests: Option<bool>,
optimize_tests: Option<bool>,
@@ -359,7 +355,6 @@ struct TomlTarget {
@@ -363,8 +358,6 @@
llvm_filecheck: Option<String>,
android_ndk: Option<String>,
crt_static: Option<bool>,
- musl_root: Option<String>,
- musl_libdir: Option<String>,
wasi_root: Option<String>,
qemu_rootfs: Option<String>,
no_std: Option<bool>,
@@ -585,7 +580,6 @@ impl Config {
@@ -592,7 +585,6 @@
set(&mut config.llvm_tools_enabled, rust.llvm_tools);
config.rustc_parallel = rust.parallel_compiler.unwrap_or(false);
config.rustc_default_linker = rust.default_linker.clone();
@ -170,11 +184,12 @@ index 56164b74..8c46334a 100644
config.save_toolstates = rust.save_toolstates.clone().map(PathBuf::from);
set(&mut config.deny_warnings, flags.deny_warnings.or(rust.deny_warnings));
set(&mut config.backtrace_on_ice, rust.backtrace_on_ice);
@@ -625,7 +619,6 @@ impl Config {
@@ -632,8 +624,6 @@
target.ranlib = cfg.ranlib.clone().map(PathBuf::from);
target.linker = cfg.linker.clone().map(PathBuf::from);
target.crt_static = cfg.crt_static;
- target.musl_root = cfg.musl_root.clone().map(PathBuf::from);
- target.musl_libdir = cfg.musl_libdir.clone().map(PathBuf::from);
target.wasi_root = cfg.wasi_root.clone().map(PathBuf::from);
target.qemu_rootfs = cfg.qemu_rootfs.clone().map(PathBuf::from);
@ -221,7 +236,7 @@ diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs
index c7e63990..77bbb2cd 100644
--- a/src/bootstrap/lib.rs
+++ b/src/bootstrap/lib.rs
@@ -845,16 +845,6 @@ impl Build {
@@ -881,25 +882,6 @@
}
}
@ -234,6 +249,15 @@ index c7e63990..77bbb2cd 100644
- .or_else(|| self.config.musl_root.as_ref())
- .map(|p| &**p)
- }
-
- /// Returns the "musl libdir" for this `target`.
- fn musl_libdir(&self, target: Interned<String>) -> Option<PathBuf> {
- let t = self.config.target_config.get(&target)?;
- if let libdir @ Some(_) = &t.musl_libdir {
- return libdir.clone();
- }
- self.musl_root(target).map(|root| root.join("lib"))
- }
-
/// Returns the sysroot for the wasi target, if defined
fn wasi_root(&self, target: Interned<String>) -> Option<&Path> {
@ -242,7 +266,7 @@ diff --git a/src/bootstrap/sanity.rs b/src/bootstrap/sanity.rs
index 530e74da..8ec9f046 100644
--- a/src/bootstrap/sanity.rs
+++ b/src/bootstrap/sanity.rs
@@ -201,28 +201,6 @@ pub fn check(build: &mut Build) {
@@ -191,28 +191,6 @@
}
}
@ -254,10 +278,10 @@ index 530e74da..8ec9f046 100644
- let target = build.config.target_config.entry(target.clone()).or_default();
- target.musl_root = Some("/usr".into());
- }
- match build.musl_root(*target) {
- Some(root) => {
- if fs::metadata(root.join("lib/libc.a")).is_err() {
- panic!("couldn't find libc.a in musl dir: {}", root.join("lib").display());
- match build.musl_libdir(*target) {
- Some(libdir) => {
- if fs::metadata(libdir.join("libc.a")).is_err() {
- panic!("couldn't find libc.a in musl libdir: {}", libdir.display());
- }
- }
- None => panic!(
@ -275,35 +299,40 @@ diff --git a/src/librustc_target/spec/linux_musl_base.rs b/src/librustc_target/s
index e294e639..58ae91a9 100644
--- a/src/librustc_target/spec/linux_musl_base.rs
+++ b/src/librustc_target/spec/linux_musl_base.rs
@@ -3,28 +3,12 @@ use crate::spec::{LinkerFlavor, TargetOptions};
pub fn opts() -> TargetOptions {
let mut base = super::linux_base::opts();
- // Make sure that the linker/gcc really don't pull in anything, including
- // default objects, libs, etc.
- base.pre_link_args_crt.insert(LinkerFlavor::Gcc, Vec::new());
- base.pre_link_args_crt.get_mut(&LinkerFlavor::Gcc).unwrap().push("-nostdlib".to_string());
-
// At least when this was tested, the linker would not add the
// `GNU_EH_FRAME` program header to executables generated, which is required
// when unwinding to locate the unwinding information. I'm not sure why this
@@ -10,10 +10,6 @@
// argument is *not* necessary for normal builds, but it can't hurt!
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-Wl,--eh-frame-hdr".to_string());
- // When generating a statically linked executable there's generally some
- // small setup needed which is listed in these files. These are provided by
- // a musl toolchain and are linked by default by the `musl-gcc` script. Note
- // that `gcc` also does this by default, it just uses some different files.
- //
- // Each target directory for musl has these object files included in it so
- // they'll be included from there.
- base.pre_link_objects_exe_crt.push("crt1.o".to_string());
- base.pre_link_objects_exe_crt.push("crti.o".to_string());
- base.post_link_objects_crt.push("crtn.o".to_string());
- base.pre_link_objects_fallback = crt_objects::pre_musl_fallback();
- base.post_link_objects_fallback = crt_objects::post_musl_fallback();
- base.crt_objects_fallback = Some(CrtObjectsFallback::Musl);
-
// These targets statically link libc by default
base.crt_static_default = true;
// These targets allow the user to choose between static and dynamic linking.
--- a/src/librustc_target/spec/crt_objects.rs.orig 2020-08-07 01:01:58.142394507 +0200
+++ b/src/librustc_target/spec/crt_objects.rs 2020-08-07 01:02:25.030392771 +0200
@@ -61,21 +61,6 @@
])
}
-pub(super) fn pre_musl_fallback() -> CrtObjects {
- new(&[
- (LinkOutputKind::DynamicNoPicExe, &["crt1.o", "crti.o"]),
- (LinkOutputKind::DynamicPicExe, &["Scrt1.o", "crti.o"]),
- (LinkOutputKind::StaticNoPicExe, &["crt1.o", "crti.o"]),
- (LinkOutputKind::StaticPicExe, &["rcrt1.o", "crti.o"]),
- (LinkOutputKind::DynamicDylib, &["crti.o"]),
- (LinkOutputKind::StaticDylib, &["crti.o"]),
- ])
-}
-
-pub(super) fn post_musl_fallback() -> CrtObjects {
- all("crtn.o")
-}
-
pub(super) fn pre_mingw_fallback() -> CrtObjects {
new(&[
(LinkOutputKind::DynamicNoPicExe, &["crt2.o", "rsbegin.o"]),
--
2.26.2

View file

@ -12,7 +12,7 @@ diff --git a/src/libunwind/build.rs b/src/libunwind/build.rs
index a24808b3..a1250889 100644
--- a/src/libunwind/build.rs
+++ b/src/libunwind/build.rs
@@ -5,15 +5,12 @@ fn main() {
@@ -5,17 +5,14 @@
let target = env::var("TARGET").expect("TARGET was not set");
if cfg!(feature = "llvm-libunwind")
@ -21,6 +21,8 @@ index a24808b3..a1250889 100644
{
// Build the unwinding from libunwind C/C++ source code.
llvm_libunwind::compile();
} else if target.contains("x86_64-fortanix-unknown-sgx") {
llvm_libunwind::compile();
} else if target.contains("linux") {
- if target.contains("musl") {
- // linking for musl is handled in lib.rs
@ -30,7 +32,7 @@ index a24808b3..a1250889 100644
println!("cargo:rustc-link-lib=gcc_s");
}
} else if target.contains("freebsd") {
@@ -105,15 +102,6 @@ mod llvm_libunwind {
@@ -145,15 +142,6 @@
cfg.file(root.join("src").join(src));
}

View file

@ -35,18 +35,12 @@ index 23ba93da..dc51b16c 100755
# Run GDB with the additional arguments that load the pretty printers
# Set the environment variable `RUST_GDB` to overwrite the call to a
diff --git a/src/etc/rust-lldb b/src/etc/rust-lldb
index 7b9b40e6..e471db36 100755
--- a/src/etc/rust-lldb
+++ b/src/etc/rust-lldb
@@ -31,7 +31,7 @@ EOF
fi
# Prepare commands that will be loaded before any file on the command line has been loaded
-script_import="command script import \"$RUSTC_SYSROOT/lib/rustlib/etc/lldb_rust_formatters.py\""
+script_import="command script import \"$RUSTC_SYSROOT/share/rust/lldb_rust_formatters.py\""
category_definition="type summary add --no-value --python-function lldb_rust_formatters.print_val -x \".*\" --category Rust"
category_enable="type category enable Rust"
--
2.26.2
--- a/src/etc/lldb_commands
+++ b/src/etc/lldb_commands
@@ -1,4 +1,4 @@
-command script import \"$RUSTC_SYSROOT/lib/rustlib/etc/lldb_lookup.py\"
+command script import \"$RUSTC_SYSROOT/share/rust/etc/lldb_lookup.py\"
type synthetic add -l lldb_lookup.synthetic_lookup -x \".*\" --category Rust
type summary add -F lldb_lookup.summary_lookup -e -x -h \"^(alloc::([a-z_]+::)+)String$\" --category Rust
type summary add -F lldb_lookup.summary_lookup -e -x -h \"^&str$\" --category Rust

View file

@ -11,9 +11,12 @@ diff --git a/src/librustc_target/spec/linux_musl_base.rs b/src/librustc_target/s
index 58ae91a9..1fae72d6 100644
--- a/src/librustc_target/spec/linux_musl_base.rs
+++ b/src/librustc_target/spec/linux_musl_base.rs
@@ -9,8 +9,7 @@ pub fn opts() -> TargetOptions {
// argument is *not* necessary for normal builds, but it can't hurt!
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-Wl,--eh-frame-hdr".to_string());
@@ -1,11 +1,9 @@
-use crate::spec::crt_objects::{self, CrtObjectsFallback};
use crate::spec::TargetOptions;
pub fn opts() -> TargetOptions {
let mut base = super::linux_base::opts();
- // These targets statically link libc by default
- base.crt_static_default = true;
@ -21,6 +24,3 @@ index 58ae91a9..1fae72d6 100644
// These targets allow the user to choose between static and dynamic linking.
base.crt_static_respected = true;
--
2.26.2

View file

@ -1,29 +0,0 @@
From d74af8923022dd369315ada0a06e467dffd127cf Mon Sep 17 00:00:00 2001
From: Michael Hudson-Doyle <michael.hudson@canonical.com>
Date: Wed, 13 Mar 2019 15:55:30 +1300
Subject: [PATCH 13/15] round result of (highest as f64).log(2.0)
Even though (1024f64).log(2.0) has an exact, representable, value, with
rustc 1.32 on i386 it comes out as +9.999999999999999985 with
optimization enabled. And the rustc doesn't like having two defintions
for U1024 etc.
---
vendor/typenum/build/main.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/vendor/typenum/build/main.rs b/vendor/typenum/build/main.rs
index 9c9f237c..153031a2 100644
--- a/vendor/typenum/build/main.rs
+++ b/vendor/typenum/build/main.rs
@@ -77,7 +77,7 @@ pub fn no_std() {}
fn main() {
let highest: u64 = 1024;
- let first2: u32 = (highest as f64).log(2.0) as u32 + 1;
+ let first2: u32 = (highest as f64).log(2.0).round() as u32 + 1;
let first10: u32 = (highest as f64).log(10.0) as u32 + 1;
let uints = (0..(highest + 1))
.chain((first2..64).map(|i| 2u64.pow(i)))
--
2.26.2

View file

@ -4,10 +4,10 @@
# Permission to use rust and cargo trademark is granted.
# See: https://github.com/rust-lang/core-team/issues/4
pkgname=rust
version=1.44.1
version=1.46.0
revision=1
_rust_dist_version=1.43.1
_cargo_dist_version=0.44.0
_rust_dist_version=1.45.2
_cargo_dist_version=0.46.1
# Always make sure custom distfiles used for bootstrap are
# uploaded to https://alpha.de.repo.voidlinux.org/distfiles/
wrksrc="rustc-${version}-src"
@ -19,7 +19,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
license="MIT, Apache-2.0"
homepage="https://www.rust-lang.org/"
distfiles="https://static.rust-lang.org/dist/rustc-${version}-src.tar.gz"
checksum="7e2e64cb298dd5d5aea52eafe943ba0458fa82f2987fdcda1ff6f537b6f88473"
checksum="2d6a3b7196db474ba3f37b8f5d50a1ecedff00738d7846840605b42bfc922728"
lib32disabled=yes
patch_args="-Np1"
@ -51,57 +51,57 @@ else
case "$XBPS_MACHINE" in
i686)
checksum+="
b415a406443cafa85e426d56d02fb52231b8d78ad1fec33b79b757d8ef4ed64c
9913d3e21efc13445e3b71f6e1103c63b130544e1f28a99a0bb642276ebca985
c7b4045b2001be2e97b0b08dfaee02097aea0e8a9983b42585d733cfa1e69683"
72676b7bb6a6ad056af2ad5459b1ac3992b7a65b823ed7f00d4af72266e0f1ad
05474dbec0385c8dcfd940e6f8954d4f8284745a4fbcf57932022b1593829463
8931dba1c23405fe630aa4ca2aceaba7de74c21cc03947c757b349d004d6a4d6"
;;
x86_64)
checksum+="
a18b89572ff2e55eb9e0428efcdb60eacd82fe28c4d825d169b0ffc9e3c55ceb
dabc62db53c2e7ffeba2824d4c52a938486b04c01a93ecba00c5d529868f6cfc
84ba23058542691dae8157beec6a7679a420643eb6a708134bb1dfb01cbdebea"
0be5c8506fd9317c7d0dc8044b5fef8501caa74f88a9a22be795d68362dc57f6
02309322467af8e37256ccf1f064f5233c7fca4423dffde0bd5eb32cde46942a
a27eb5d47b520ef2c554605bf789f80652af63531b4f6a1195d61b3dfd0f6e9c"
;;
x86_64-musl)
checksum+="
be982dc01b5c86a3f2b0b99a2ca0e13b3cea698ee6f1db9fa024de5c8b35a75d
f3b55147ff6e01448699eaf0875d7956ea38eeef42a19cda9d555e814470e823
653cb60214d6f1000c9a7775111dccd093c0118e7f7bf5f2f1f53a7e5e2420b3"
9a971ff29e01243b08f6f3c220ab5d608489637a6b5d81ba2e8a78007901ced0
e8081032d53baa129c41c4c2bfb025648ac321c9c809f377110f8a26f7ce1cdb
895a3b6928a5bf7b1ac28c339a85ddd078dd719f54245b8d845370baf8255368"
;;
ppc64le)
checksum+="
8fd21a9eac7e27a5f7af9d9357455d1ff5aef01d84b4025a773caaae6e0a6db7
235bdaf836a0bd139257d6cc0566e0c3d4d1e07c04304ed9a8d200299aaa4a48
4f90cd6cbcf9e9d6ba11830e093092e4e6c3d156ffde2e729933869b7a039ff9"
68af3485558636be870a067d0e1196ee34664de1b6e5e6f68aed926c0906574d
0a000c2e047c675bee27c2287b2e03fe21148ead95c35b884846a8dc7c3c162d
93354ae5cedaa75d44928d5e232cd9a57a9164cadf47d4a30493c05e60b59b7f"
;;
ppc64le-musl)
checksum+="
2c32096c0f1b3a756cc29d6ecaf89296148a7a99d43baa0141bee490b353b502
fa87695bdede026b031010716fafbe2890cbff00acc3042fd372dd7cc5eb46a7
a85e8c9714a8bb7c17cd23993c677f51d9e0d6f5e85ab10f53ec1639b19bbbd4"
158338268de72108b35ea7b018d99f08be8e7340996a12dc2f4682e06f148fc5
5c1225e6fb029008584f4d1813ddcd1bccce2c329b398a02b3bd6ea4e6d9e128
12da677338f860362e00089fe5b67ecd619c0ae4a4ca2bd14e500df32f598f49"
;;
ppc64)
checksum+="
4aa250cd14553ae3a438cd7a7290a79b899d1fbec9fc60985bbce070b500883e
2cd6e88be42db44338c18fa6e3170ffea679ee73825826112cdbf6dd9ed0619a
983e2fbec9c4bfe66bab37ad64cdd5b47918378e421d9bf639e938f120650199"
d474ecedc0783081fa025742b92c459a12f97d2ffc87a83c143df0fa9f4d7212
60e32e91c9da0263f69c2b41ba5aa0953b2026fb11118bd1595db062a8c5fa62
eab0c2d96f863e3c87afc46d43c54df6614af333b98ee881278acf56d9bf3fe8"
;;
ppc64-musl)
checksum+="
f3c4fb775e63248914fece31199312dd2f69660f10b696ebbc56d41d4bc4ac2c
c3d580c71e5a716056347513588d4445bdb8225e2ee5d9f2cf87c5bb4357bcb1
f974893d1cac6c799345bece08c7f796eb50e1a77c4b9bc2a6451d161a57c660"
1eecbc8f719a41c905b85dd3723f09e2999cc468deaf4f127614310f0634931f
8abdd395a4448c96e64b881921fc0bba0fdb5da133b1973962018316e8fb5cfa
48770d0f7941005c87c0ddf303a7eca2fcff4c56cfdaaf60b5d862dfeee2a59d"
;;
ppc)
checksum+="
109d6af5d05cfbde5a476d07cf8b3093a974b0c76922bf8cd1046c5e11f5caaa
a90152808c82f863f3c14647ebfbb6ae66d065ea4577be1036f6dc229c1e7e89
48f4419300fe758ebe024e6449a5ca1dff07803047a815b3d3909170baa7adcc"
772db024e310835f3a967f6e5a147564f3633c8173e88516f2484d9f1d914f6b
e2c0e48421b0e6da709686e8d2a94852821ad483f1f74f27c48c08d012c917ad
034af894e980f642e31d35978d8cbb8839fe9c8f1119083a720a58f7ad7fb881"
;;
ppc-musl)
checksum+="
3d5211d6c5cf241b3d3dba343c027d05ff04765e2dd4175168095a86e7c9de22
04a5cdb4f18ccae3eb9059c84adf7a7778484e89c8404ba67cde814019ec5b57
bbb93a757e75d09cb5f6d6dd837e32212acd8888426406352eccf52f329386f1"
11d34ff8cca6e76e2b307898bc11858f70e5bdadd2746506aa92923d19e03358
5c5c3e917339084230ee56b47a9a51fd4e89c5d7227b32f0636b92edd9031980
aac08878b9ce3bf7dff4247e988fdaddeaa410cccc8559f8e7e0fd45d8f2ece5"
;;
esac
fi