diff options
Diffstat (limited to 'bootstrap/rust-1.68')
16 files changed, 1448 insertions, 0 deletions
diff --git a/bootstrap/rust-1.68/0001-Fix-LLVM-build.patch b/bootstrap/rust-1.68/0001-Fix-LLVM-build.patch new file mode 100644 index 000000000..bbb54aca6 --- /dev/null +++ b/bootstrap/rust-1.68/0001-Fix-LLVM-build.patch @@ -0,0 +1,25 @@ +From 1a5423cf2c7eb0784fcc9b789cdd271efbf43d45 Mon Sep 17 00:00:00 2001 +From: Samuel Holland <samuel@sholland.org> +Date: Fri, 8 Sep 2017 00:04:29 -0500 +Subject: [PATCH 01/13] Fix LLVM build + +--- + src/bootstrap/lib.rs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs +index 3130dcc277b..c6ac4f9e636 100644 +--- a/src/bootstrap/lib.rs ++++ b/src/bootstrap/lib.rs +@@ -1091,7 +1091,7 @@ fn cflags(&self, target: TargetSelection, which: GitRepo, c: CLang) -> Vec<Strin + .args() + .iter() + .map(|s| s.to_string_lossy().into_owned()) +- .filter(|s| !s.starts_with("-O") && !s.starts_with("/O")) ++ .filter(|s| !s.starts_with("-O") && !s.starts_with("/O") && !s.starts_with("-static")) + .collect::<Vec<String>>(); + + // If we're compiling on macOS then we add a few unconditional flags +-- +2.35.1 + diff --git a/bootstrap/rust-1.68/0002-Fix-linking-to-zlib-when-cross-compiling.patch b/bootstrap/rust-1.68/0002-Fix-linking-to-zlib-when-cross-compiling.patch new file mode 100644 index 000000000..a293b3ee8 --- /dev/null +++ b/bootstrap/rust-1.68/0002-Fix-linking-to-zlib-when-cross-compiling.patch @@ -0,0 +1,34 @@ +From 0e8c7ea4fb9fa362dd7d67e68d8d2cec9d448975 Mon Sep 17 00:00:00 2001 +From: Samuel Holland <samuel@sholland.org> +Date: Wed, 10 Jan 2018 13:36:41 -0600 +Subject: [PATCH 02/13] Fix linking to zlib when cross-compiling + +--- + compiler/rustc_llvm/build.rs | 7 ++----- + 1 file changed, 2 insertions(+), 5 deletions(-) + +diff --git a/compiler/rustc_llvm/build.rs b/compiler/rustc_llvm/build.rs +index 0b3c057345a67..4b3367bcfd75a 100644 +--- a/compiler/rustc_llvm/build.rs ++++ b/compiler/rustc_llvm/build.rs +@@ -235,10 +235,8 @@ fn main() { + // of llvm-config, not the target that we're attempting to link. + let mut cmd = Command::new(&llvm_config); + cmd.arg(llvm_link_arg).arg("--libs"); +- +- if !is_crossed { +- cmd.arg("--system-libs"); +- } ++ cmd.arg("--system-libs"); ++ cmd.args(&components); + + if (target.starts_with("arm") && !target.contains("freebsd")) + || target.starts_with("mips-") +@@ -253,7 +251,6 @@ fn main() { + } else if target.contains("netbsd") || target.contains("haiku") || target.contains("darwin") { + println!("cargo:rustc-link-lib=z"); + } +- cmd.args(&components); + + for lib in output(&mut cmd).split_whitespace() { + let name = if let Some(stripped) = lib.strip_prefix("-l") { diff --git a/bootstrap/rust-1.68/0003-Fix-rustdoc-when-cross-compiling-on-musl.patch b/bootstrap/rust-1.68/0003-Fix-rustdoc-when-cross-compiling-on-musl.patch new file mode 100644 index 000000000..86068d14d --- /dev/null +++ b/bootstrap/rust-1.68/0003-Fix-rustdoc-when-cross-compiling-on-musl.patch @@ -0,0 +1,42 @@ +From 05264618f6902def4daf5a5fd087d6a831e3ff57 Mon Sep 17 00:00:00 2001 +From: Samuel Holland <samuel@sholland.org> +Date: Sat, 2 Dec 2017 17:25:44 -0600 +Subject: [PATCH 03/13] Fix rustdoc when cross-compiling on musl + +musl can't handle foreign-architecture libraries in LD_LIBRARY_PATH. +--- + src/bootstrap/bin/rustdoc.rs | 7 ++----- + 1 file changed, 2 insertions(+), 5 deletions(-) + +diff --git a/src/bootstrap/bin/rustdoc.rs b/src/bootstrap/bin/rustdoc.rs +index 5f85fc5aa5903..01e81fc398409 100644 +--- a/src/bootstrap/bin/rustdoc.rs ++++ b/src/bootstrap/bin/rustdoc.rs +@@ -27,9 +27,6 @@ fn main() { + Err(_) => 0, + }; + +- let mut dylib_path = dylib_path(); +- dylib_path.insert(0, PathBuf::from(libdir.clone())); +- + let mut cmd = Command::new(rustdoc); + + if target.is_some() { +@@ -42,7 +39,7 @@ fn main() { + } + + cmd.args(&args); +- cmd.env(dylib_path_var(), env::join_paths(&dylib_path).unwrap()); ++ cmd.env(dylib_path_var(), PathBuf::from(libdir.clone())); + + // Force all crates compiled by this compiler to (a) be unstable and (b) + // allow the `rustc_private` feature to link to other unstable crates +@@ -74,7 +71,7 @@ fn main() { + eprintln!( + "rustdoc command: {:?}={:?} {:?}", + dylib_path_var(), +- env::join_paths(&dylib_path).unwrap(), ++ PathBuf::from(libdir.clone()), + cmd, + ); + eprintln!("sysroot: {:?}", sysroot); diff --git a/bootstrap/rust-1.68/0004-Remove-musl_root-and-CRT-fallback-from-musl-targets.patch b/bootstrap/rust-1.68/0004-Remove-musl_root-and-CRT-fallback-from-musl-targets.patch new file mode 100644 index 000000000..a30f51700 --- /dev/null +++ b/bootstrap/rust-1.68/0004-Remove-musl_root-and-CRT-fallback-from-musl-targets.patch @@ -0,0 +1,518 @@ +From 8ec741a2cf81daffd9465655baa742c94ba17131 Mon Sep 17 00:00:00 2001 +From: Samuel Holland <samuel@sholland.org> +Date: Fri, 8 Sep 2017 22:11:14 -0500 +Subject: [PATCH 04/13] Remove musl_root and CRT fallback from musl targets + +--- + compiler/rustc_codegen_ssa/src/back/link.rs | 6 +-- + compiler/rustc_target/src/spec/crt_objects.rs | 25 ----------- + .../rustc_target/src/spec/linux_musl_base.rs | 4 -- + config.toml.example | 17 -------- + src/bootstrap/cc_detect.rs | 27 +----------- + src/bootstrap/compile.rs | 42 +------------------ + src/bootstrap/config.rs | 10 ----- + src/bootstrap/configure.py | 28 ------------- + src/bootstrap/lib.rs | 19 --------- + src/bootstrap/sanity.rs | 23 ---------- + .../dist-i586-gnu-i586-i686-musl/Dockerfile | 2 - + .../host-x86_64/dist-various-1/Dockerfile | 8 ---- + .../host-x86_64/dist-various-2/Dockerfile | 3 +- + .../host-x86_64/dist-x86_64-musl/Dockerfile | 1 - + .../host-x86_64/test-various/Dockerfile | 1 - + 15 files changed, 5 insertions(+), 211 deletions(-) + +diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs +index 34e042376c122..9b065fa04f516 100644 +--- a/compiler/rustc_codegen_ssa/src/back/link.rs ++++ b/compiler/rustc_codegen_ssa/src/back/link.rs +@@ -1598,7 +1598,7 @@ fn detect_self_contained_mingw(sess: &Session) -> bool { + /// Various toolchain components used during linking are used from rustc distribution + /// instead of being found somewhere on the host system. + /// We only provide such support for a very limited number of targets. +-fn self_contained(sess: &Session, crate_type: CrateType) -> bool { ++fn self_contained(sess: &Session, _crate_type: CrateType) -> bool { + if let Some(self_contained) = sess.opts.cg.link_self_contained { + if sess.target.link_self_contained == LinkSelfContainedDefault::False { + sess.emit_err(errors::UnsupportedLinkSelfContained); +@@ -1609,10 +1609,6 @@ fn self_contained(sess: &Session, crate_type: CrateType) -> bool { + match sess.target.link_self_contained { + LinkSelfContainedDefault::False => false, + LinkSelfContainedDefault::True => true, +- // FIXME: Find a better heuristic for "native musl toolchain is available", +- // based on host and linker path, for example. +- // (https://github.com/rust-lang/rust/pull/71769#issuecomment-626330237). +- LinkSelfContainedDefault::Musl => sess.crt_static(Some(crate_type)), + LinkSelfContainedDefault::Mingw => { + sess.host == sess.target + && sess.target.vendor != "uwp" +diff --git a/compiler/rustc_target/src/spec/crt_objects.rs b/compiler/rustc_target/src/spec/crt_objects.rs +index c126390f5a908..63e3074b5b7c2 100644 +--- a/compiler/rustc_target/src/spec/crt_objects.rs ++++ b/compiler/rustc_target/src/spec/crt_objects.rs +@@ -63,28 +63,6 @@ pub(super) fn all(obj: &'static str) -> CrtObjects { + ]) + } + +-pub(super) fn pre_musl_self_contained() -> CrtObjects { +- new(&[ +- (LinkOutputKind::DynamicNoPicExe, &["crt1.o", "crti.o", "crtbegin.o"]), +- (LinkOutputKind::DynamicPicExe, &["Scrt1.o", "crti.o", "crtbeginS.o"]), +- (LinkOutputKind::StaticNoPicExe, &["crt1.o", "crti.o", "crtbegin.o"]), +- (LinkOutputKind::StaticPicExe, &["rcrt1.o", "crti.o", "crtbeginS.o"]), +- (LinkOutputKind::DynamicDylib, &["crti.o", "crtbeginS.o"]), +- (LinkOutputKind::StaticDylib, &["crti.o", "crtbeginS.o"]), +- ]) +-} +- +-pub(super) fn post_musl_self_contained() -> CrtObjects { +- new(&[ +- (LinkOutputKind::DynamicNoPicExe, &["crtend.o", "crtn.o"]), +- (LinkOutputKind::DynamicPicExe, &["crtendS.o", "crtn.o"]), +- (LinkOutputKind::StaticNoPicExe, &["crtend.o", "crtn.o"]), +- (LinkOutputKind::StaticPicExe, &["crtendS.o", "crtn.o"]), +- (LinkOutputKind::DynamicDylib, &["crtendS.o", "crtn.o"]), +- (LinkOutputKind::StaticDylib, &["crtendS.o", "crtn.o"]), +- ]) +-} +- + pub(super) fn pre_mingw_self_contained() -> CrtObjects { + new(&[ + (LinkOutputKind::DynamicNoPicExe, &["crt2.o", "rsbegin.o"]), +@@ -130,7 +108,6 @@ pub(super) fn post_wasi_self_contained() -> CrtObjects { + pub enum LinkSelfContainedDefault { + False, + True, +- Musl, + Mingw, + } + +@@ -141,7 +118,6 @@ impl FromStr for LinkSelfContainedDefault { + Ok(match s { + "false" => LinkSelfContainedDefault::False, + "true" | "wasm" => LinkSelfContainedDefault::True, +- "musl" => LinkSelfContainedDefault::Musl, + "mingw" => LinkSelfContainedDefault::Mingw, + _ => return Err(()), + }) +@@ -153,7 +129,6 @@ impl ToJson for LinkSelfContainedDefault { + match *self { + LinkSelfContainedDefault::False => "false", + LinkSelfContainedDefault::True => "true", +- LinkSelfContainedDefault::Musl => "musl", + LinkSelfContainedDefault::Mingw => "mingw", + } + .to_json() +diff --git a/compiler/rustc_target/src/spec/linux_musl_base.rs b/compiler/rustc_target/src/spec/linux_musl_base.rs +index 61553e71b4500..67d18c886eba5 100644 +--- a/compiler/rustc_target/src/spec/linux_musl_base.rs ++++ b/compiler/rustc_target/src/spec/linux_musl_base.rs +@@ -1,13 +1,9 @@ +-use crate::spec::crt_objects::{self, LinkSelfContainedDefault}; + use crate::spec::TargetOptions; + + pub fn opts() -> TargetOptions { + let mut base = super::linux_base::opts(); + + base.env = "musl".into(); +- base.pre_link_objects_self_contained = crt_objects::pre_musl_self_contained(); +- base.post_link_objects_self_contained = crt_objects::post_musl_self_contained(); +- base.link_self_contained = LinkSelfContainedDefault::Musl; + + // These targets statically link libc by default + base.crt_static_default = true; +diff --git a/config.toml.example b/config.toml.example +index 5e1d2f2e314ff..89d1de9372d8f 100644 +--- a/config.toml.example ++++ b/config.toml.example +@@ -539,14 +539,6 @@ changelog-seen = 2 + # behavior -- this may lead to miscompilations or other bugs. + #description = <none> (string) + +-# 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. +-# +-# Defaults to /usr on musl hosts. Has no default otherwise. +-#musl-root = <platform specific> (path) +- + # 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 +@@ -728,15 +720,6 @@ changelog-seen = 2 + # only use static libraries. If unset, the target's default linkage is used. + #crt-static = <platform-specific> (bool) + +-# 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 = build.musl-root (path) +- +-# The full path to the musl libdir. +-#musl-libdir = musl-root/lib +- + # The root location of the `wasm32-wasi` sysroot. Only used for the + # `wasm32-wasi` target. If you are building wasm32-wasi target, make sure to + # create a `[target.wasm32-wasi]` section and move this field there. +diff --git a/src/bootstrap/cc_detect.rs b/src/bootstrap/cc_detect.rs +index 65c882fb801e5..05b29e3e8e0f2 100644 +--- a/src/bootstrap/cc_detect.rs ++++ b/src/bootstrap/cc_detect.rs +@@ -41,8 +41,6 @@ fn cc2ar(cc: &Path, target: TargetSelection) -> Option<PathBuf> { + Some(PathBuf::from(ar)) + } else if target.contains("msvc") { + None +- } else if target.contains("musl") { +- Some(PathBuf::from("ar")) + } else if target.contains("openbsd") { + Some(PathBuf::from("ar")) + } else if target.contains("vxworks") { +@@ -103,7 +101,7 @@ pub fn find(build: &mut Build) { + if let Some(cc) = config.and_then(|c| c.cc.as_ref()) { + cfg.compiler(cc); + } else { +- set_compiler(&mut cfg, Language::C, target, config, build); ++ set_compiler(&mut cfg, Language::C, target, config); + } + + let compiler = cfg.get_compiler(); +@@ -124,7 +122,7 @@ pub fn find(build: &mut Build) { + cfg.compiler(cxx); + true + } else if build.hosts.contains(&target) || build.build == target { +- set_compiler(&mut cfg, Language::CPlusPlus, target, config, build); ++ set_compiler(&mut cfg, Language::CPlusPlus, target, config); + true + } else { + // Use an auto-detected compiler (or one configured via `CXX_target_triple` env vars). +@@ -160,7 +158,6 @@ fn set_compiler( + compiler: Language, + target: TargetSelection, + config: Option<&Target>, +- build: &Build, + ) { + match &*target.triple { + // When compiling for android we may have the NDK configured in the +@@ -196,26 +193,6 @@ fn set_compiler( + } + } + +- "mips-unknown-linux-musl" => { +- if cfg.get_compiler().path().to_str() == Some("gcc") { +- cfg.compiler("mips-linux-musl-gcc"); +- } +- } +- "mipsel-unknown-linux-musl" => { +- if cfg.get_compiler().path().to_str() == Some("gcc") { +- cfg.compiler("mipsel-linux-musl-gcc"); +- } +- } +- +- t if t.contains("musl") => { +- if let Some(root) = build.musl_root(target) { +- let guess = root.join("bin/musl-gcc"); +- if guess.exists() { +- cfg.compiler(guess); +- } +- } +- } +- + _ => {} + } + } +diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs +index 68d1db0160a2e..f55c855c80537 100644 +--- a/src/bootstrap/compile.rs ++++ b/src/bootstrap/compile.rs +@@ -229,38 +229,7 @@ fn copy_self_contained_objects( + + // Copies the libc and CRT objects. + // +- // 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_libdir(target).unwrap_or_else(|| { +- panic!("Target {:?} does not have a \"musl-libdir\" key", target.triple) +- }); +- for &obj in &["libc.a", "crt1.o", "Scrt1.o", "rcrt1.o", "crti.o", "crtn.o"] { +- copy_and_stamp( +- builder, +- &libdir_self_contained, +- &srcdir, +- obj, +- &mut target_deps, +- DependencyType::TargetSelfContained, +- ); +- } +- let crt_path = builder.ensure(native::CrtBeginEnd { target }); +- for &obj in &["crtbegin.o", "crtbeginS.o", "crtend.o", "crtendS.o"] { +- let src = crt_path.join(obj); +- let target = libdir_self_contained.join(obj); +- builder.copy(&src, &target); +- target_deps.push((target, DependencyType::TargetSelfContained)); +- } +- +- if !target.starts_with("s390x") { +- let libunwind_path = copy_llvm_libunwind(builder, target, &libdir_self_contained); +- target_deps.push((libunwind_path, DependencyType::TargetSelfContained)); +- } +- } else if target.ends_with("-wasi") { ++ if target.ends_with("-wasi") { + let srcdir = builder + .wasi_root(target) + .unwrap_or_else(|| { +@@ -351,15 +320,6 @@ pub fn std_cargo(builder: &Builder<'_>, target: TargetSelection, stage: u32, car + .arg("--manifest-path") + .arg(builder.src.join("library/test/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_libdir(target) { +- let root = format!("native={}", p.to_str().unwrap()); +- cargo.rustflag("-L").rustflag(&root); +- } +- } +- + if target.ends_with("-wasi") { + if let Some(p) = builder.wasi_root(target) { + let root = format!("native={}/lib/wasm32-wasi", p.to_str().unwrap()); +diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs +index b41d60d51a8b5..ca27401c50050 100644 +--- a/src/bootstrap/config.rs ++++ b/src/bootstrap/config.rs +@@ -199,8 +199,6 @@ pub struct Config { + pub print_step_rusage: bool, + pub missing_tools: bool, + +- // Fallback musl-root for all targets +- pub musl_root: Option<PathBuf>, + pub prefix: Option<PathBuf>, + pub sysconfdir: Option<PathBuf>, + pub datadir: Option<PathBuf>, +@@ -440,8 +438,6 @@ pub struct Target { + pub sanitizers: Option<bool>, + pub profiler: Option<bool>, + 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, +@@ -735,7 +731,6 @@ define_config! { + default_linker: Option<String> = "default-linker", + channel: Option<String> = "channel", + description: Option<String> = "description", +- musl_root: Option<String> = "musl-root", + rpath: Option<bool> = "rpath", + verbose_tests: Option<bool> = "verbose-tests", + optimize_tests: Option<bool> = "optimize-tests", +@@ -782,8 +777,6 @@ define_config! { + sanitizers: Option<bool> = "sanitizers", + profiler: Option<bool> = "profiler", + crt_static: Option<bool> = "crt-static", +- musl_root: Option<String> = "musl-root", +- musl_libdir: Option<String> = "musl-libdir", + wasi_root: Option<String> = "wasi-root", + qemu_rootfs: Option<String> = "qemu-rootfs", + no_std: Option<bool> = "no-std", +@@ -1108,7 +1101,6 @@ impl Config { + 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; +- config.musl_root = rust.musl_root.map(PathBuf::from); + config.save_toolstates = rust.save_toolstates.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); +@@ -1263,8 +1255,6 @@ impl Config { + target.ranlib = cfg.ranlib.map(PathBuf::from); + target.linker = cfg.linker.map(PathBuf::from); + target.crt_static = cfg.crt_static; +- target.musl_root = cfg.musl_root.map(PathBuf::from); +- target.musl_libdir = cfg.musl_libdir.map(PathBuf::from); + target.wasi_root = cfg.wasi_root.map(PathBuf::from); + target.qemu_rootfs = cfg.qemu_rootfs.map(PathBuf::from); + target.sanitizers = cfg.sanitizers; +diff --git a/src/bootstrap/configure.py b/src/bootstrap/configure.py +index 0af329e7007ac..ce06abeca8d19 100755 +--- a/src/bootstrap/configure.py ++++ b/src/bootstrap/configure.py +@@ -112,34 +112,6 @@ def v(*args): + "aarch64-linux-android NDK standalone path") + v("x86_64-linux-android-ndk", "target.x86_64-linux-android.android-ndk", + "x86_64-linux-android NDK standalone path") +-v("musl-root", "target.x86_64-unknown-linux-musl.musl-root", +- "MUSL root installation directory (deprecated)") +-v("musl-root-x86_64", "target.x86_64-unknown-linux-musl.musl-root", +- "x86_64-unknown-linux-musl install directory") +-v("musl-root-i586", "target.i586-unknown-linux-musl.musl-root", +- "i586-unknown-linux-musl install directory") +-v("musl-root-i686", "target.i686-unknown-linux-musl.musl-root", +- "i686-unknown-linux-musl install directory") +-v("musl-root-arm", "target.arm-unknown-linux-musleabi.musl-root", +- "arm-unknown-linux-musleabi install directory") +-v("musl-root-armhf", "target.arm-unknown-linux-musleabihf.musl-root", +- "arm-unknown-linux-musleabihf install directory") +-v("musl-root-armv5te", "target.armv5te-unknown-linux-musleabi.musl-root", +- "armv5te-unknown-linux-musleabi install directory") +-v("musl-root-armv7", "target.armv7-unknown-linux-musleabi.musl-root", +- "armv7-unknown-linux-musleabi install directory") +-v("musl-root-armv7hf", "target.armv7-unknown-linux-musleabihf.musl-root", +- "armv7-unknown-linux-musleabihf install directory") +-v("musl-root-aarch64", "target.aarch64-unknown-linux-musl.musl-root", +- "aarch64-unknown-linux-musl install directory") +-v("musl-root-mips", "target.mips-unknown-linux-musl.musl-root", +- "mips-unknown-linux-musl install directory") +-v("musl-root-mipsel", "target.mipsel-unknown-linux-musl.musl-root", +- "mipsel-unknown-linux-musl install directory") +-v("musl-root-mips64", "target.mips64-unknown-linux-muslabi64.musl-root", +- "mips64-unknown-linux-muslabi64 install directory") +-v("musl-root-mips64el", "target.mips64el-unknown-linux-muslabi64.musl-root", +- "mips64el-unknown-linux-muslabi64 install directory") + v("qemu-armhf-rootfs", "target.arm-unknown-linux-gnueabihf.qemu-rootfs", + "rootfs in qemu testing, you probably don't want to use this") + v("qemu-aarch64-rootfs", "target.aarch64-unknown-linux-gnu.qemu-rootfs", +diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs +index 071b17504aa8b..699ca89b1982a 100644 +--- a/src/bootstrap/lib.rs ++++ b/src/bootstrap/lib.rs +@@ -1193,25 +1193,6 @@ impl Build { + } + } + +- /// Returns the "musl root" for this `target`, if defined +- fn musl_root(&self, target: TargetSelection) -> Option<&Path> { +- self.config +- .target_config +- .get(&target) +- .and_then(|t| t.musl_root.as_ref()) +- .or_else(|| self.config.musl_root.as_ref()) +- .map(|p| &**p) +- } +- +- /// Returns the "musl libdir" for this `target`. +- fn musl_libdir(&self, target: TargetSelection) -> 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: TargetSelection) -> Option<&Path> { + self.config.target_config.get(&target).and_then(|t| t.wasi_root.as_ref()).map(|p| &**p) +diff --git a/src/bootstrap/sanity.rs b/src/bootstrap/sanity.rs +index 8a40b0f64f4b6..59e11d304a6e6 100644 +--- a/src/bootstrap/sanity.rs ++++ b/src/bootstrap/sanity.rs +@@ -11,7 +11,6 @@ + use std::collections::HashMap; + use std::env; + use std::ffi::{OsStr, OsString}; +-use std::fs; + use std::path::PathBuf; + use std::process::Command; + +@@ -205,28 +204,6 @@ than building it. + } + } + +- // Make sure musl-root is valid +- if target.contains("musl") { +- // If this is a native target (host is also musl) and no musl-root is given, +- // fall back to the system toolchain in /usr before giving up +- if build.musl_root(*target).is_none() && build.config.build == *target { +- let target = build.config.target_config.entry(*target).or_default(); +- target.musl_root = Some("/usr".into()); +- } +- 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!( +- "when targeting MUSL either the rust.musl-root \ +- option or the target.$TARGET.musl-root option must \ +- be specified in config.toml" +- ), +- } +- } +- + // Some environments don't want or need these tools, such as when testing Miri. + // FIXME: it would be better to refactor this code to split necessary setup from pure sanity + // checks, and have a regular flag for skipping the latter. Also see +diff --git a/src/ci/docker/host-x86_64/dist-i586-gnu-i586-i686-musl/Dockerfile b/src/ci/docker/host-x86_64/dist-i586-gnu-i586-i686-musl/Dockerfile +index 34829adf79bcf..11a5d5e5c8cb4 100644 +--- a/src/ci/docker/host-x86_64/dist-i586-gnu-i586-i686-musl/Dockerfile ++++ b/src/ci/docker/host-x86_64/dist-i586-gnu-i586-i686-musl/Dockerfile +@@ -58,8 +58,6 @@ COPY scripts/sccache.sh /scripts/ + RUN sh /scripts/sccache.sh + + ENV RUST_CONFIGURE_ARGS \ +- --musl-root-i586=/musl-i586 \ +- --musl-root-i686=/musl-i686 \ + --disable-docs + + # Newer binutils broke things on some vms/distros (i.e., linking against +diff --git a/src/ci/docker/host-x86_64/dist-various-1/Dockerfile b/src/ci/docker/host-x86_64/dist-various-1/Dockerfile +index 4576e6d4fa256..e13d579b217f3 100644 +--- a/src/ci/docker/host-x86_64/dist-various-1/Dockerfile ++++ b/src/ci/docker/host-x86_64/dist-various-1/Dockerfile +@@ -172,14 +172,6 @@ ENV CFLAGS_armv5te_unknown_linux_musleabi="-march=armv5te -marm -mfloat-abi=soft + CC_riscv64gc_unknown_none_elf=false + + ENV RUST_CONFIGURE_ARGS \ +- --musl-root-armv5te=/musl-armv5te \ +- --musl-root-arm=/musl-arm \ +- --musl-root-armhf=/musl-armhf \ +- --musl-root-armv7hf=/musl-armv7hf \ +- --musl-root-mips=/musl-mips \ +- --musl-root-mipsel=/musl-mipsel \ +- --musl-root-mips64=/musl-mips64 \ +- --musl-root-mips64el=/musl-mips64el \ + --disable-docs + + ENV SCRIPT \ +diff --git a/src/ci/docker/host-x86_64/dist-various-2/Dockerfile b/src/ci/docker/host-x86_64/dist-various-2/Dockerfile +index 0f5df95a0dd4b..3e0bc3fd33d28 100644 +--- a/src/ci/docker/host-x86_64/dist-various-2/Dockerfile ++++ b/src/ci/docker/host-x86_64/dist-various-2/Dockerfile +@@ -135,7 +135,6 @@ ENV TARGETS=$TARGETS,x86_64-unknown-uefi + RUN ln -s /usr/include/asm-generic /usr/local/include/asm + + ENV RUST_CONFIGURE_ARGS --enable-extended --enable-lld --disable-docs \ +- --set target.wasm32-wasi.wasi-root=/wasm32-wasi \ +- --musl-root-armv7=/musl-armv7 ++ --set target.wasm32-wasi.wasi-root=/wasm32-wasi + + ENV SCRIPT python3 ../x.py dist --host='' --target $TARGETS +diff --git a/src/ci/docker/host-x86_64/dist-x86_64-musl/Dockerfile b/src/ci/docker/host-x86_64/dist-x86_64-musl/Dockerfile +index 13eaf7fce8cd7..05cea19102072 100644 +--- a/src/ci/docker/host-x86_64/dist-x86_64-musl/Dockerfile ++++ b/src/ci/docker/host-x86_64/dist-x86_64-musl/Dockerfile +@@ -38,7 +38,6 @@ RUN sh /scripts/sccache.sh + ENV HOSTS=x86_64-unknown-linux-musl + + ENV RUST_CONFIGURE_ARGS \ +- --musl-root-x86_64=/usr/local/x86_64-linux-musl \ + --enable-extended \ + --enable-sanitizers \ + --enable-profiler \ +diff --git a/src/ci/docker/host-x86_64/test-various/Dockerfile b/src/ci/docker/host-x86_64/test-various/Dockerfile +index 62e3f627ec08f..f29429b5b5b0e 100644 +--- a/src/ci/docker/host-x86_64/test-various/Dockerfile ++++ b/src/ci/docker/host-x86_64/test-various/Dockerfile +@@ -42,7 +42,6 @@ COPY scripts/sccache.sh /scripts/ + RUN sh /scripts/sccache.sh + + ENV RUST_CONFIGURE_ARGS \ +- --musl-root-x86_64=/usr/local/x86_64-linux-musl \ + --set build.nodejs=/node-v15.14.0-linux-x64/bin/node \ + --set rust.lld + diff --git a/bootstrap/rust-1.68/0005-Prefer-libgcc_eh-over-libunwind-for-musl.patch b/bootstrap/rust-1.68/0005-Prefer-libgcc_eh-over-libunwind-for-musl.patch new file mode 100644 index 000000000..7d800881e --- /dev/null +++ b/bootstrap/rust-1.68/0005-Prefer-libgcc_eh-over-libunwind-for-musl.patch @@ -0,0 +1,25 @@ +From 78ae73f09d07c847ede1dc683b8907f5bd5bd17f Mon Sep 17 00:00:00 2001 +From: Samuel Holland <samuel@sholland.org> +Date: Sat, 9 Sep 2017 00:14:16 -0500 +Subject: [PATCH 05/13] Prefer libgcc_eh over libunwind for musl + +--- + library/unwind/src/lib.rs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/library/unwind/src/lib.rs b/library/unwind/src/lib.rs +index 079626f0fea..590fca0acfa 100644 +--- a/library/unwind/src/lib.rs ++++ b/library/unwind/src/lib.rs +@@ -48,7 +48,7 @@ + #[link(name = "unwind", cfg(not(target_feature = "crt-static")))] + extern "C" {} + } else { +- #[link(name = "unwind", kind = "static", modifiers = "-bundle", cfg(target_feature = "crt-static"))] ++ #[link(name = "gcc_eh", kind = "static", modifiers = "-bundle", cfg(target_feature = "crt-static"))] + #[link(name = "gcc_s", cfg(not(target_feature = "crt-static")))] + extern "C" {} + } +-- +2.35.1 + diff --git a/bootstrap/rust-1.68/0006-Link-libssp_nonshared.a-on-all-musl-targets.patch b/bootstrap/rust-1.68/0006-Link-libssp_nonshared.a-on-all-musl-targets.patch new file mode 100644 index 000000000..d379a1048 --- /dev/null +++ b/bootstrap/rust-1.68/0006-Link-libssp_nonshared.a-on-all-musl-targets.patch @@ -0,0 +1,28 @@ +From 5e7144b4963e6c733033738dbf5552c9ae0f19e3 Mon Sep 17 00:00:00 2001 +From: Samuel Holland <samuel@sholland.org> +Date: Sun, 3 Nov 2019 17:01:32 -0600 +Subject: [PATCH 06/13] Link libssp_nonshared.a on all musl targets + +--- + compiler/rustc_target/src/spec/linux_musl_base.rs | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/compiler/rustc_target/src/spec/linux_musl_base.rs b/compiler/rustc_target/src/spec/linux_musl_base.rs +index 67d18c886eba5..f9be51095d6fc 100644 +--- a/compiler/rustc_target/src/spec/linux_musl_base.rs ++++ b/compiler/rustc_target/src/spec/linux_musl_base.rs +@@ -1,10 +1,13 @@ +-use crate::spec::TargetOptions; ++use crate::spec::{Cc, LinkerFlavor, Lld, TargetOptions}; + + pub fn opts() -> TargetOptions { + let mut base = super::linux_base::opts(); + + base.env = "musl".into(); + ++ // libssp_nonshared.a is needed for __stack_chk_fail_local when using libc.so ++ base.add_post_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-lssp_nonshared"]); ++ + // These targets statically link libc by default + base.crt_static_default = true; + diff --git a/bootstrap/rust-1.68/0007-test-failed-doctest-output-Fix-normalization.patch b/bootstrap/rust-1.68/0007-test-failed-doctest-output-Fix-normalization.patch new file mode 100644 index 000000000..5907e5ee1 --- /dev/null +++ b/bootstrap/rust-1.68/0007-test-failed-doctest-output-Fix-normalization.patch @@ -0,0 +1,33 @@ +From 99004a91f6455c835d2625c757f17ee15d2e084a Mon Sep 17 00:00:00 2001 +From: Samuel Holland <samuel@sholland.org> +Date: Mon, 7 Oct 2019 18:36:28 -0500 +Subject: [PATCH 07/13] test/failed-doctest-output: Fix normalization + +Otherwise we get: + +1 +2 running 2 tests +- test $DIR/failed-doctest-output.rs - OtherStruct (line 20) ... FAILED +- test $DIR/failed-doctest-output.rs - SomeStruct (line 10) ... FAILED ++ test src/rustc-1.38.0-src/$DIR/failed-doctest-output.rs - OtherStruct (line 20) ... FAILED ++ test src/rustc-1.38.0-src/$DIR/failed-doctest-output.rs - SomeStruct (line 10) ... FAILED +5 +6 failures: +7 +--- + tests/rustdoc-ui/failed-doctest-output.rs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/rustdoc-ui/failed-doctest-output.rs b/tests/rustdoc-ui/failed-doctest-output.rs +index 77647f8eca954..8361f041ffca0 100644 +--- a/tests/rustdoc-ui/failed-doctest-output.rs ++++ b/tests/rustdoc-ui/failed-doctest-output.rs +@@ -7,7 +7,7 @@ + + // compile-flags:--test --test-args --test-threads=1 + // rustc-env:RUST_BACKTRACE=0 +-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR" ++// normalize-stdout-test: "[[:graph:]]*tests/rustdoc-ui" -> "$$DIR" + // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME" + // failure-status: 101 + diff --git a/bootstrap/rust-1.68/0008-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch b/bootstrap/rust-1.68/0008-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch new file mode 100644 index 000000000..182d45bf4 --- /dev/null +++ b/bootstrap/rust-1.68/0008-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch @@ -0,0 +1,22 @@ +From 81d273638256b8dbd12c6b18a42e4600ae6a02f7 Mon Sep 17 00:00:00 2001 +From: Samuel Holland <samuel@sholland.org> +Date: Mon, 17 Sep 2018 01:32:20 +0000 +Subject: [PATCH 08/13] test/sysroot-crates-are-unstable: Fix test when rpath is + disabled + +Without this environment var, the test can't run rustc to find +the sysroot path. +--- + tests/run-make-fulldeps/sysroot-crates-are-unstable/Makefile | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/tests/run-make-fulldeps/sysroot-crates-are-unstable/Makefile b/tests/run-make-fulldeps/sysroot-crates-are-unstable/Makefile +index 1e267fb9576ba..30c33c5c13d20 100644 +--- a/tests/run-make-fulldeps/sysroot-crates-are-unstable/Makefile ++++ b/tests/run-make-fulldeps/sysroot-crates-are-unstable/Makefile +@@ -1,2 +1,4 @@ ++-include ../tools.mk ++ + all: +- '$(PYTHON)' test.py ++ env '$(HOST_RPATH_ENV)' '$(PYTHON)' test.py diff --git a/bootstrap/rust-1.68/0009-test-use-extern-for-plugins-Don-t-assume-multilib.patch b/bootstrap/rust-1.68/0009-test-use-extern-for-plugins-Don-t-assume-multilib.patch new file mode 100644 index 000000000..6180c1ef9 --- /dev/null +++ b/bootstrap/rust-1.68/0009-test-use-extern-for-plugins-Don-t-assume-multilib.patch @@ -0,0 +1,27 @@ +From a1e12bd7eb4e25fc1b0ccdd70f051db925298260 Mon Sep 17 00:00:00 2001 +From: Samuel Holland <samuel@sholland.org> +Date: Sat, 6 Oct 2018 04:01:48 +0000 +Subject: [PATCH 09/13] test/use-extern-for-plugins: Don't assume multilib + +--- + tests/run-make-fulldeps/use-extern-for-plugins/Makefile | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +diff --git a/tests/run-make-fulldeps/use-extern-for-plugins/Makefile b/tests/run-make-fulldeps/use-extern-for-plugins/Makefile +index 6ae53afad207b..b1b7b163b91e4 100644 +--- a/tests/run-make-fulldeps/use-extern-for-plugins/Makefile ++++ b/tests/run-make-fulldeps/use-extern-for-plugins/Makefile +@@ -4,12 +4,7 @@ include ../tools.mk + # ignore-openbsd + # ignore-sunos + +-HOST := $(shell $(RUSTC) -vV | grep 'host:' | sed 's/host: //') +-ifeq ($(findstring i686,$(HOST)),i686) +-TARGET := $(subst i686,x86_64,$(HOST)) +-else +-TARGET := $(subst x86_64,i686,$(HOST)) +-endif ++TARGET := $(shell $(RUSTC) -vV | grep 'host:' | sed 's/host: //') + + all: + $(RUSTC) foo.rs -C extra-filename=-host diff --git a/bootstrap/rust-1.68/0010-Ignore-broken-and-non-applicable-tests.patch b/bootstrap/rust-1.68/0010-Ignore-broken-and-non-applicable-tests.patch new file mode 100644 index 000000000..16bdf6f62 --- /dev/null +++ b/bootstrap/rust-1.68/0010-Ignore-broken-and-non-applicable-tests.patch @@ -0,0 +1,58 @@ +From 7ffd07fcdf49f0c4a4e5becfc773c594b86e6dc9 Mon Sep 17 00:00:00 2001 +From: Samuel Holland <samuel@sholland.org> +Date: Sun, 16 Sep 2018 16:38:48 +0000 +Subject: [PATCH 10/13] Ignore broken and non-applicable tests + +c-link-to-rust-va-list-fn: unstable feature, broken on aarch64, #56475 +env-funky-keys: can't handle LD_PRELOAD (e.g. sandbox) +long-linker-command-lines: takes >10 minutes to run (but still passes) +sysroot-crates-are-unstable: can't run rustc without RPATH +--- + tests/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile | 2 ++ + tests/run-make-fulldeps/long-linker-command-lines/Makefile | 2 ++ + tests/run-make-fulldeps/sysroot-crates-are-unstable/Makefile | 2 ++ + tests/ui/env-funky-keys.rs | 1 + + 4 files changed, 7 insertions(+) + +diff --git a/tests/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile b/tests/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile +index 9ce2a34e677b3..fa1892d6cb3e9 100644 +--- a/tests/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile ++++ b/tests/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile +@@ -1,3 +1,5 @@ ++# ignore-aarch64 ++ + include ../tools.mk + + all: +diff --git a/tests/run-make-fulldeps/long-linker-command-lines/Makefile b/tests/run-make-fulldeps/long-linker-command-lines/Makefile +index 00199ca970d3d..3839663eac481 100644 +--- a/tests/run-make-fulldeps/long-linker-command-lines/Makefile ++++ b/tests/run-make-fulldeps/long-linker-command-lines/Makefile +@@ -1,3 +1,5 @@ ++# ignore-test ++ + include ../tools.mk + + all: +diff --git a/tests/run-make-fulldeps/sysroot-crates-are-unstable/Makefile b/tests/run-make-fulldeps/sysroot-crates-are-unstable/Makefile +index 30c33c5c13d20..d733bb1c557f5 100644 +--- a/tests/run-make-fulldeps/sysroot-crates-are-unstable/Makefile ++++ b/tests/run-make-fulldeps/sysroot-crates-are-unstable/Makefile +@@ -1,3 +1,5 @@ ++# ignore-test ++ + -include ../tools.mk + + all: +diff --git a/tests/ui/env-funky-keys.rs b/tests/ui/env-funky-keys.rs +index 46e20d8c61f52..b598ebfbb45a1 100644 +--- a/tests/ui/env-funky-keys.rs ++++ b/tests/ui/env-funky-keys.rs +@@ -1,6 +1,7 @@ + // run-pass + // Ignore this test on Android, because it segfaults there. + ++// ignore-test + // ignore-android + // ignore-windows + // ignore-emscripten no execve diff --git a/bootstrap/rust-1.68/0011-Link-stage-2-tools-dynamically-to-libstd.patch b/bootstrap/rust-1.68/0011-Link-stage-2-tools-dynamically-to-libstd.patch new file mode 100644 index 000000000..7a9c8e3fa --- /dev/null +++ b/bootstrap/rust-1.68/0011-Link-stage-2-tools-dynamically-to-libstd.patch @@ -0,0 +1,25 @@ +From 74767e8d9cad131d8fb67054df8110065649e6dd Mon Sep 17 00:00:00 2001 +From: Samuel Holland <samuel@sholland.org> +Date: Mon, 24 Sep 2018 23:42:23 +0000 +Subject: [PATCH 11/13] Link stage 2 tools dynamically to libstd + +--- + src/bootstrap/builder.rs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs +index 0d387ff1e37..f3ecd9067d3 100644 +--- a/src/bootstrap/builder.rs ++++ b/src/bootstrap/builder.rs +@@ -1904,7 +1904,7 @@ pub fn cargo( + // When we build Rust dylibs they're all intended for intermediate + // usage, so make sure we pass the -Cprefer-dynamic flag instead of + // linking all deps statically into the dylib. +- if matches!(mode, Mode::Std | Mode::Rustc) { ++ if matches!(mode, Mode::Std | Mode::Rustc | Mode::ToolRustc) { + rustflags.arg("-Cprefer-dynamic"); + } + +-- +2.35.1 + diff --git a/bootstrap/rust-1.68/0012-Move-debugger-scripts-to-usr-share-rust.patch b/bootstrap/rust-1.68/0012-Move-debugger-scripts-to-usr-share-rust.patch new file mode 100644 index 000000000..d771e194e --- /dev/null +++ b/bootstrap/rust-1.68/0012-Move-debugger-scripts-to-usr-share-rust.patch @@ -0,0 +1,69 @@ +From 137de7f431c116721de728a121f0c38aa24f58b6 Mon Sep 17 00:00:00 2001 +From: Samuel Holland <samuel@sholland.org> +Date: Mon, 17 Sep 2018 02:09:10 +0000 +Subject: [PATCH 12/13] Move debugger scripts to /usr/share/rust + +--- + src/bootstrap/dist.rs | 2 +- + src/etc/rust-gdb | 2 +- + src/etc/rust-gdbgui | 2 +- + src/etc/rust-lldb | 4 ++-- + 4 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs +index f5ae8103cb0..28c9f3c05bc 100644 +--- a/src/bootstrap/dist.rs ++++ b/src/bootstrap/dist.rs +@@ -511,7 +511,7 @@ fn make_run(run: RunConfig<'_>) { + fn run(self, builder: &Builder<'_>) { + let host = self.host; + let sysroot = self.sysroot; +- let dst = sysroot.join("lib/rustlib/etc"); ++ let dst = sysroot.join("share/rust"); + t!(fs::create_dir_all(&dst)); + let cp_debugger_script = |file: &str| { + builder.install(&builder.src.join("src/etc/").join(file), &dst, 0o644); +diff --git a/src/etc/rust-gdb b/src/etc/rust-gdb +index b950cea79ed..559bfe3f1f9 100755 +--- a/src/etc/rust-gdb ++++ b/src/etc/rust-gdb +@@ -12,7 +12,7 @@ fi + + # Find out where the pretty printer Python module is + RUSTC_SYSROOT="$("$RUSTC" --print=sysroot)" +-GDB_PYTHON_MODULE_DIRECTORY="$RUSTC_SYSROOT/lib/rustlib/etc" ++GDB_PYTHON_MODULE_DIRECTORY="$RUSTC_SYSROOT/share/rust" + + # 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-gdbgui b/src/etc/rust-gdbgui +index 9744913b686..8722acdcc52 100755 +--- a/src/etc/rust-gdbgui ++++ b/src/etc/rust-gdbgui +@@ -41,7 +41,7 @@ fi + + # Find out where the pretty printer Python module is + RUSTC_SYSROOT="$("$RUSTC" --print=sysroot)" +-GDB_PYTHON_MODULE_DIRECTORY="$RUSTC_SYSROOT/lib/rustlib/etc" ++GDB_PYTHON_MODULE_DIRECTORY="$RUSTC_SYSROOT/share/rust" + + # Set the environment variable `RUST_GDB` to overwrite the call to a + # different/specific command (defaults to `gdb`). +diff --git a/src/etc/rust-lldb b/src/etc/rust-lldb +index bce72f1bad6..8abb0124527 100755 +--- a/src/etc/rust-lldb ++++ b/src/etc/rust-lldb +@@ -30,8 +30,8 @@ EOF + fi + fi + +-script_import="command script import \"$RUSTC_SYSROOT/lib/rustlib/etc/lldb_lookup.py\"" +-commands_file="$RUSTC_SYSROOT/lib/rustlib/etc/lldb_commands" ++script_import="command script import \"$RUSTC_SYSROOT/share/rust/lldb_lookup.py\"" ++commands_file="$RUSTC_SYSROOT/share/rust/lldb_commands" + + # Call LLDB with the commands added to the argument list + exec "$lldb" --one-line-before-file "$script_import" --source-before-file "$commands_file" "$@" +-- +2.35.1 + diff --git a/bootstrap/rust-1.68/0013-Add-foxkit-target-specs.patch b/bootstrap/rust-1.68/0013-Add-foxkit-target-specs.patch new file mode 100644 index 000000000..afe724378 --- /dev/null +++ b/bootstrap/rust-1.68/0013-Add-foxkit-target-specs.patch @@ -0,0 +1,144 @@ +From 7e50215a21b198c73fe575d28c847fd645c4ee40 Mon Sep 17 00:00:00 2001 +From: Samuel Holland <samuel@sholland.org> +Date: Mon, 17 Sep 2018 02:29:06 +0000 +Subject: [PATCH 13/13] Add foxkit target specs + +--- + .../src/spec/aarch64_foxkit_linux_musl.rs | 11 +++++++++++ + .../src/spec/armv7_foxkit_linux_musleabihf.rs | 11 +++++++++++ + .../rustc_target/src/spec/i586_foxkit_linux_musl.rs | 11 +++++++++++ + compiler/rustc_target/src/spec/mod.rs | 7 +++++++ + .../src/spec/powerpc64_foxkit_linux_musl.rs | 11 +++++++++++ + .../src/spec/powerpc_foxkit_linux_musl.rs | 11 +++++++++++ + .../rustc_target/src/spec/x86_64_foxkit_linux_musl.rs | 11 +++++++++++ + 7 files changed, 73 insertions(+) + create mode 100644 compiler/rustc_target/src/spec/aarch64_foxkit_linux_musl.rs + create mode 100644 compiler/rustc_target/src/spec/armv7_foxkit_linux_musleabihf.rs + create mode 100644 compiler/rustc_target/src/spec/i586_foxkit_linux_musl.rs + create mode 100644 compiler/rustc_target/src/spec/powerpc64_foxkit_linux_musl.rs + create mode 100644 compiler/rustc_target/src/spec/powerpc_foxkit_linux_musl.rs + create mode 100644 compiler/rustc_target/src/spec/x86_64_foxkit_linux_musl.rs + +diff --git a/compiler/rustc_target/src/spec/aarch64_foxkit_linux_musl.rs b/compiler/rustc_target/src/spec/aarch64_foxkit_linux_musl.rs +new file mode 100644 +index 00000000000..4bdd51af4fe +--- /dev/null ++++ b/compiler/rustc_target/src/spec/aarch64_foxkit_linux_musl.rs +@@ -0,0 +1,11 @@ ++use crate::spec::Target; ++ ++pub fn target() -> Target { ++ let mut base = super::aarch64_unknown_linux_musl::target(); ++ ++ base.llvm_target = "aarch64-foxkit-linux-musl".into(); ++ base.vendor = "foxkit".into(); ++ base.options.crt_static_default = false; ++ ++ base ++} +diff --git a/compiler/rustc_target/src/spec/armv7_foxkit_linux_musleabihf.rs b/compiler/rustc_target/src/spec/armv7_foxkit_linux_musleabihf.rs +new file mode 100644 +index 00000000000..994f3c39e7c +--- /dev/null ++++ b/compiler/rustc_target/src/spec/armv7_foxkit_linux_musleabihf.rs +@@ -0,0 +1,11 @@ ++use crate::spec::Target; ++ ++pub fn target() -> Target { ++ let mut base = super::armv7_unknown_linux_musleabihf::target(); ++ ++ base.llvm_target = "armv7-foxkit-linux-musleabihf".into(); ++ base.vendor = "foxkit".into(); ++ base.options.crt_static_default = false; ++ ++ base ++} +diff --git a/compiler/rustc_target/src/spec/i586_foxkit_linux_musl.rs b/compiler/rustc_target/src/spec/i586_foxkit_linux_musl.rs +new file mode 100644 +index 00000000000..028e4b5e930 +--- /dev/null ++++ b/compiler/rustc_target/src/spec/i586_foxkit_linux_musl.rs +@@ -0,0 +1,11 @@ ++use crate::spec::Target; ++ ++pub fn target() -> Target { ++ let mut base = super::i586_unknown_linux_musl::target(); ++ ++ base.llvm_target = "i586-foxkit-linux-musl".into(); ++ base.vendor = "foxkit".into(); ++ base.options.crt_static_default = false; ++ ++ base ++} +diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs +index 92678aed5b1..66a408d0b36 100644 +--- a/compiler/rustc_target/src/spec/mod.rs ++++ b/compiler/rustc_target/src/spec/mod.rs +@@ -1013,6 +1013,13 @@ fn $module() { + } + + supported_targets! { ++ ("aarch64-foxkit-linux-musl", aarch64_foxkit_linux_musl), ++ ("armv7-foxkit-linux-musleabihf", armv7_foxkit_linux_musleabihf), ++ ("i586-foxkit-linux-musl", i586_foxkit_linux_musl), ++ ("powerpc-foxkit-linux-musl", powerpc_foxkit_linux_musl), ++ ("powerpc64-foxkit-linux-musl", powerpc64_foxkit_linux_musl), ++ ("x86_64-foxkit-linux-musl", x86_64_foxkit_linux_musl), ++ + ("x86_64-unknown-linux-gnu", x86_64_unknown_linux_gnu), + ("x86_64-unknown-linux-gnux32", x86_64_unknown_linux_gnux32), + ("i686-unknown-linux-gnu", i686_unknown_linux_gnu), +diff --git a/compiler/rustc_target/src/spec/powerpc64_foxkit_linux_musl.rs b/compiler/rustc_target/src/spec/powerpc64_foxkit_linux_musl.rs +new file mode 100644 +index 00000000000..04a50f84b60 +--- /dev/null ++++ b/compiler/rustc_target/src/spec/powerpc64_foxkit_linux_musl.rs +@@ -0,0 +1,11 @@ ++use crate::spec::Target; ++ ++pub fn target() -> Target { ++ let mut base = super::powerpc64_unknown_linux_musl::target(); ++ ++ base.llvm_target = "powerpc64-foxkit-linux-musl".into(); ++ base.vendor = "foxkit".into(); ++ base.options.crt_static_default = false; ++ ++ base ++} +diff --git a/compiler/rustc_target/src/spec/powerpc_foxkit_linux_musl.rs b/compiler/rustc_target/src/spec/powerpc_foxkit_linux_musl.rs +new file mode 100644 +index 00000000000..7bca52c4299 +--- /dev/null ++++ b/compiler/rustc_target/src/spec/powerpc_foxkit_linux_musl.rs +@@ -0,0 +1,11 @@ ++use crate::spec::Target; ++ ++pub fn target() -> Target { ++ let mut base = super::powerpc_unknown_linux_musl::target(); ++ ++ base.llvm_target = "powerpc-foxkit-linux-musl".into(); ++ base.vendor = "foxkit".into(); ++ base.options.crt_static_default = false; ++ ++ base ++} +diff --git a/compiler/rustc_target/src/spec/x86_64_foxkit_linux_musl.rs b/compiler/rustc_target/src/spec/x86_64_foxkit_linux_musl.rs +new file mode 100644 +index 00000000000..1ff73687c00 +--- /dev/null ++++ b/compiler/rustc_target/src/spec/x86_64_foxkit_linux_musl.rs +@@ -0,0 +1,11 @@ ++use crate::spec::Target; ++ ++pub fn target() -> Target { ++ let mut base = super::x86_64_unknown_linux_musl::target(); ++ ++ base.llvm_target = "x86_64-foxkit-linux-musl".into(); ++ base.vendor = "foxkit".into(); ++ base.options.crt_static_default = false; ++ ++ base ++} +-- +2.35.1 + diff --git a/bootstrap/rust-1.68/0040-rls-atomics.patch b/bootstrap/rust-1.68/0040-rls-atomics.patch new file mode 100644 index 000000000..e084217ba --- /dev/null +++ b/bootstrap/rust-1.68/0040-rls-atomics.patch @@ -0,0 +1,58 @@ +--- rustc-1.58.1-src/src/tools/rls/rls/src/cmd.rs ++++ rustc-1.58.1-src/src/tools/rls/rls/src/cmd.rs +@@ -7,7 +7,7 @@ use crate::config::Config; + use crate::server::{self, LsService, Notification, Request, RequestId}; + use rls_analysis::{AnalysisHost, Target}; + use rls_vfs::Vfs; +-use std::sync::atomic::{AtomicU64, Ordering}; ++use std::sync::atomic::{AtomicU32, Ordering}; + + use lsp_types::{ + ClientCapabilities, CodeActionContext, CodeActionParams, CompletionItem, +@@ -316,8 +316,8 @@ fn url(file_name: &str) -> Url { + } + + fn next_id() -> RequestId { +- static ID: AtomicU64 = AtomicU64::new(1); +- RequestId::Num(ID.fetch_add(1, Ordering::SeqCst)) ++ static ID: AtomicU32 = AtomicU32::new(1); ++ RequestId::Num(ID.fetch_add(1, Ordering::SeqCst).into()) + } + + // Custom reader and output for the RLS server. +--- rustc-1.58.1-src/src/tools/rls/rls/src/server/io.rs ++++ rustc-1.58.1-src/src/tools/rls/rls/src/server/io.rs +@@ -5,7 +5,7 @@ use crate::lsp_data::{LSPNotification, LSPRequest}; + + use std::fmt; + use std::io::{self, BufRead, Write}; +-use std::sync::atomic::{AtomicU64, Ordering}; ++use std::sync::atomic::{AtomicU32, Ordering}; + use std::sync::Arc; + + use jsonrpc_core::{self as jsonrpc, response, version, Id}; +@@ -169,13 +169,13 @@ pub trait Output: Sync + Send + Clone + 'static { + /// An output that sends notifications and responses on `stdout`. + #[derive(Clone)] + pub(super) struct StdioOutput { +- next_id: Arc<AtomicU64>, ++ next_id: Arc<AtomicU32>, + } + + impl StdioOutput { + /// Constructs a new `stdout` output. + pub(crate) fn new() -> StdioOutput { +- StdioOutput { next_id: Arc::new(AtomicU64::new(1)) } ++ StdioOutput { next_id: Arc::new(AtomicU32::new(1).into()) } + } + } + +@@ -192,7 +192,7 @@ impl Output for StdioOutput { + } + + fn provide_id(&self) -> RequestId { +- RequestId::Num(self.next_id.fetch_add(1, Ordering::SeqCst)) ++ RequestId::Num(self.next_id.fetch_add(1, Ordering::SeqCst).into()) + } + } + diff --git a/bootstrap/rust-1.68/APKBUILD b/bootstrap/rust-1.68/APKBUILD new file mode 100644 index 000000000..538a65ab1 --- /dev/null +++ b/bootstrap/rust-1.68/APKBUILD @@ -0,0 +1,292 @@ +# Maintainer: Samuel Holland <samuel@sholland.org> +pkgname=rust +pkgver=1.68.2 +_bootver=1.67.1-r0 +_llvmver=14 +pkgrel=0 +pkgdesc="The Rust Programming Language" +url="https://www.rust-lang.org" +arch="all" +#options="!check" # Failures on aarch64 and ppc64. +license="(Apache-2.0 OR MIT) AND (NCSA OR MIT) AND BSD-2-Clause AND BSD-3-Clause" +depends="$pkgname-std=$pkgver-r$pkgrel gcc musl-dev" +makedepends=" + curl-dev + llvm$_llvmver-dev + llvm$_llvmver-test-utils + openssl-dev + python3 + cargo-bootstrap=$_bootver + rust-bootstrap=$_bootver + rustfmt-bootstrap=$_bootver + zlib-dev + " +provides="$pkgname-bootstrap=$pkgver-r$pkgrel" +subpackages=" + $pkgname-dbg + $pkgname-std + $pkgname-analysis + $pkgname-doc + $pkgname-gdb::noarch + $pkgname-lldb::noarch + $pkgname-src::noarch + cargo + cargo-clippy:_cargo_clippy + cargo-fmt:_cargo_fmt + cargo-doc:_cargo_doc:noarch + cargo-bash-completion:_cargo_bashcomp:noarch + cargo-zsh-completion:_cargo_zshcomp:noarch + rustfmt + " +source="https://static.rust-lang.org/dist/rustc-$pkgver-src.tar.xz + 0001-Fix-LLVM-build.patch + 0002-Fix-linking-to-zlib-when-cross-compiling.patch + 0003-Fix-rustdoc-when-cross-compiling-on-musl.patch + 0004-Remove-musl_root-and-CRT-fallback-from-musl-targets.patch + 0005-Prefer-libgcc_eh-over-libunwind-for-musl.patch + 0006-Link-libssp_nonshared.a-on-all-musl-targets.patch + 0007-test-failed-doctest-output-Fix-normalization.patch + 0008-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch + 0009-test-use-extern-for-plugins-Don-t-assume-multilib.patch + 0010-Ignore-broken-and-non-applicable-tests.patch + 0011-Link-stage-2-tools-dynamically-to-libstd.patch + 0012-Move-debugger-scripts-to-usr-share-rust.patch + 0013-Add-foxkit-target-specs.patch + powerpc-atomics.patch + " +builddir="$srcdir/rustc-$pkgver-src" +_rlibdir="/usr/lib/rustlib/$CTARGET/lib" + +build() { + cat > config.toml <<- EOF + changelog-seen = 2 + [build] + doc-stage = 2 + build-stage = 2 + test-stage = 2 + build = "$CBUILD" + host = [ "$CHOST" ] + target = [ "$CTARGET" ] + cargo = "/usr/bin/cargo" + rustc = "/usr/bin/rustc" + rustfmt = "/usr/bin/rustfmt" + docs = true + compiler-docs = false + submodules = false + python = "python3" + locked-deps = true + vendor = true + extended = true + tools = [ "analysis", "cargo", "clippy", "rustfmt", "src" ] + verbose = 1 + sanitizers = false + profiler = false + cargo-native-static = false + [install] + prefix = "/usr" + [rust] + optimize = true + debug = false + codegen-units = 1 + debuginfo-level = 2 + debuginfo-level-rustc = 0 + debuginfo-level-tests = 0 + backtrace = true + incremental = false + parallel-compiler = false + channel = "stable" + description = "Adelie ${pkgver}-r${pkgrel}" + rpath = false + verbose-tests = true + optimize-tests = true + codegen-tests = true + dist-src = false + lld = false + use-lld = false + llvm-tools = false + backtrace-on-ice = true + remap-debuginfo = false + jemalloc = false + llvm-libunwind = "no" + new-symbol-mangling = true + [target.$CTARGET] + cc = "$CTARGET-gcc" + cxx = "$CTARGET-g++" + ar = "ar" + ranlib = "ranlib" + linker = "$CTARGET-gcc" + llvm-config = "/usr/lib/llvm$_llvmver/bin/llvm-config" + crt-static = false + [dist] + src-tarball = false + compression-formats = [ "xz" ] + EOF + + LLVM_LINK_SHARED=1 \ + RUST_BACKTRACE=1 \ + python3 x.py dist -j ${JOBS:-2} +} + +check() { + LLVM_LINK_SHARED=1 \ + python3 x.py test -j ${JOBS:-2} --no-doc --no-fail-fast || true +} + +package() { + cd "$builddir"/build/dist + + tar xf rust-$pkgver-$CTARGET.tar.xz + rust-$pkgver-$CTARGET/install.sh \ + --destdir="$pkgdir" \ + --prefix=/usr \ + --sysconfdir="$pkgdir"/etc \ + --disable-ldconfig + tar xf rust-src-$pkgver.tar.xz + rust-src-$pkgver/install.sh \ + --destdir="$pkgdir" \ + --prefix=/usr \ + --disable-ldconfig + + rm "$pkgdir"/usr/lib/rustlib/components \ + "$pkgdir"/usr/lib/rustlib/install.log \ + "$pkgdir"/usr/lib/rustlib/manifest-* \ + "$pkgdir"/usr/lib/rustlib/rust-installer-version \ + "$pkgdir"/usr/lib/rustlib/uninstall.sh +} + +std() { + pkgdesc="Standard library for Rust" + depends="musl-utils" + + _mv "$pkgdir"$_rlibdir/*.so "$subpkgdir"$_rlibdir + + mkdir -p "$subpkgdir"/etc/ld.so.conf.d + echo "$_rlibdir" > "$subpkgdir"/etc/ld.so.conf.d/$pkgname.conf +} + +analysis() { + pkgdesc="Compiler analysis data for the Rust standard library" + depends="$pkgname=$pkgver-r$pkgrel $pkgname-std=$pkgver-r$pkgrel" + + _mv "$pkgdir"${_rlibdir%/*}/analysis "$subpkgdir"${_rlibdir%/*} +} + +gdb() { + pkgdesc="GDB pretty printers for Rust" + license="Apache-2.0 OR MIT" + depends="$pkgname gdb" + install_if="$pkgname=$pkgver-r$pkgrel gdb" + + _mv "$pkgdir"/usr/bin/rust-gdb "$subpkgdir"/usr/bin + _mv "$pkgdir"/usr/bin/rust-gdbgui "$subpkgdir"/usr/bin + _mv "$pkgdir"/usr/share/rust/gdb_*.py "$subpkgdir"/usr/share/rust +} + +lldb() { + pkgdesc="LLDB pretty printers for Rust" + license="Apache-2.0 OR MIT" + depends="$pkgname lldb py3-lldb" + install_if="$pkgname=$pkgver-r$pkgrel lldb" + + _mv "$pkgdir"/usr/bin/rust-lldb "$subpkgdir"/usr/bin + _mv "$pkgdir"/usr/share/rust/lldb_*.py "$subpkgdir"/usr/share/rust +} + +src() { + pkgdesc="$pkgdesc (source code)" + depends="" + + _mv "$pkgdir"/usr/lib/rustlib/src/rust "$subpkgdir"/usr/src + rmdir -p "$pkgdir"/usr/lib/rustlib/src 2>/dev/null || true + + mkdir -p "$subpkgdir"/usr/lib/rustlib/src + ln -s ../../../src/rust "$subpkgdir"/usr/lib/rustlib/src/rust +} + +cargo() { + pkgdesc="The Rust package manager" + provides="cargo-bootstrap=$pkgver-r$pkgrel" + depends="$pkgname-std=$pkgver-r$pkgrel $pkgname" + + _mv "$pkgdir"/usr/bin/cargo "$subpkgdir"/usr/bin +} + +_cargo_clippy() { + pkgdesc="A collection of Rust lints (cargo plugin)" + depends="$pkgname-std=$pkgver-r$pkgrel cargo" + + _mv "$pkgdir"/usr/bin/cargo-clippy \ + "$pkgdir"/usr/bin/clippy-driver \ + "$subpkgdir"/usr/bin +} + +_cargo_fmt() { + pkgdesc="Format Rust code (cargo plugin)" + depends="$pkgname-std=$pkgver-r$pkgrel cargo rustfmt" + install_if="cargo=$pkgver-r$pkgrel rustfmt=$pkgver-r$pkgrel" + + _mv "$pkgdir"/usr/bin/cargo-fmt "$subpkgdir"/usr/bin +} + +_cargo_bashcomp() { + pkgdesc="Bash completion for cargo" + license="Apache-2.0 OR MIT" + depends="" + install_if="cargo=$pkgver-r$pkgrel bash-completion" + + _mv "$pkgdir"/etc/bash_completion.d/cargo \ + "$subpkgdir"/usr/share/bash-completion/completions + rmdir -p "$pkgdir"/etc/bash_completion.d 2>/dev/null || true +} + +_cargo_zshcomp() { + pkgdesc="ZSH completion for cargo" + license="Apache-2.0 OR MIT" + depends="" + install_if="cargo=$pkgver-r$pkgrel zsh" + + _mv "$pkgdir"/usr/share/zsh/site-functions/_cargo \ + "$subpkgdir"/usr/share/zsh/site-functions/_cargo + rmdir -p "$pkgdir"/usr/share/zsh/site-functions 2>/dev/null || true +} + +_cargo_doc() { + pkgdesc="The Rust package manager (documentation)" + license="Apache-2.0 OR MIT" + depends="" + install_if="cargo=$pkgver-r$pkgrel docs" + + # XXX: This is hackish! + _mv "$pkgdir"/../$pkgname-doc/usr/share/man/man1/cargo* \ + "$subpkgdir"/usr/share/man/man1 +} + +rustfmt() { + pkgdesc="Format Rust code" + provides="rustfmt-bootstrap=$pkgver-r$pkgrel" + depends="$pkgname-std=$pkgver-r$pkgrel" + + _mv "$pkgdir"/usr/bin/rustfmt "$subpkgdir"/usr/bin +} + +_mv() { + local dest; for dest; do true; done # get last argument + mkdir -p "$dest" + mv "$@" +} + +sha512sums="8b085d0351e19100e9abc24b10c44a0939a1d35ba23421da4ece345d7373f7dbad1dc6a2ae153c1259404dd96b41e2682e711cf2b0b63fd03a196760cddbcdd3 rustc-1.68.2-src.tar.xz +2eab0513b3fbe27e635de257f931f85f0e275362b6bbeca296e582b39b4bf6b9f4bb7551c1a8ea2aebb3240df98fbcd727e384506d4059215a66335411ec9168 0001-Fix-LLVM-build.patch +4388c90bc285db5689e31b81700df13e868703fa76613afe96858c0ca0bb8ab1b569c3b6580bdc0f7bb6bdb7201c901d78e86547458aa8700bd7fa5ebeff0453 0002-Fix-linking-to-zlib-when-cross-compiling.patch +887babf6ca5cb969fdf91e5930fa966aa7979246a4031c749233997f919df881f198ad8a22e8b260ee841b52ba46de83f080b99bdf2a44ba864854cf3bfdd437 0003-Fix-rustdoc-when-cross-compiling-on-musl.patch +a284464636b86f62797473db5ee5b3035a210ea96bdde31a6eac014f4eee03ae2580a91b8fd95697315581c545959087f6647da302f8df1d06a970caf4be52ba 0004-Remove-musl_root-and-CRT-fallback-from-musl-targets.patch +33c1d5b2f051f4ccfde4cdd9cfed4a97b23ccc50aac2eed300b989fff8e1ad55e0ab140c128d33fca25b5b54cfb33b948bc6a139f93d232661e07bf4eba1dc24 0005-Prefer-libgcc_eh-over-libunwind-for-musl.patch +3cf4663242bfd6c67a644a2c6e9c49d26fb2dc93b8907daa86880adb9f57a3db222121a68004aae3f048da59d123ace301e28c63ea80a80f61f4b63f8089e497 0006-Link-libssp_nonshared.a-on-all-musl-targets.patch +f0886d31ea28f37359ade3a201f56e48d7bd0d12f5d3e0aeac6044acf0d3bf27a18788ddf31c4ac1243acfe2e1f9e964de9a328997449f6f0eb4ac2fd5e4f316 0007-test-failed-doctest-output-Fix-normalization.patch +85699f22dce83a270885b4709a53ff9cd4495260d77fdbbb02e90efd164aaa9d023bd32e0ed6297b37ada76dcb51b432299438143acd24d215185ed2cd06576f 0008-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch +9b878e77c2a15d5528be7d899b69f5fcf57624d1463d701a4ff01dad239201929a39cecbe4d653879a305f25b17a0761231c755803cdcf253338c5d535633ba4 0009-test-use-extern-for-plugins-Don-t-assume-multilib.patch +586c7bade5c24209515a29b810262084d13ae854f1c5832ffc47eab5d765cf17d9e327ca0643d4a85b51c7daf7cccc66b5279441702bbd351b397be012b3ea5b 0010-Ignore-broken-and-non-applicable-tests.patch +e5e7c1179880230c5f77236c0d04bfa6a41c138794992c4a20ad86e81311df1ddedaaaf101f0a31d83d2a439ee8c2696c4f07b9210baa6105ef69c77fe564dfa 0011-Link-stage-2-tools-dynamically-to-libstd.patch +cc87d6a02985a2e0e540cba57a35c42ad559fd34820c5ac32fe8d0ce946975f4225d20b7947383bb9cd718e8f8110fcb842f33c756a532a09025d9df7c742ebf 0012-Move-debugger-scripts-to-usr-share-rust.patch +1120672d2fa765c3c2369b9b0cbb6c7d1bc1354bd4a090ebcde4cfd7abb9c32aa0267e83ec208e3e253a8ad59b2478ae079ece1839257d49324ebd7c7ab81613 0013-Add-foxkit-target-specs.patch +92456019da825af8a68f4b37fc458099768d12c399fd33d73a84a043c0b28475022eadaee84ef07fb418d3d93a7dfdbda57c0b10364c96054ee5519abd9e667b powerpc-atomics.patch" diff --git a/bootstrap/rust-1.68/powerpc-atomics.patch b/bootstrap/rust-1.68/powerpc-atomics.patch new file mode 100644 index 000000000..c7eceeb72 --- /dev/null +++ b/bootstrap/rust-1.68/powerpc-atomics.patch @@ -0,0 +1,48 @@ +--- rustc-1.60.0-src/vendor/crossbeam-epoch/no_atomic.rs.old 2022-04-04 11:10:55.000000000 +0000 ++++ rustc-1.60.0-src/vendor/crossbeam-epoch/no_atomic.rs 2022-11-23 07:36:20.388894146 +0000 +@@ -45,6 +45,7 @@ + "mipsisa32r6-unknown-linux-gnu", + "mipsisa32r6el-unknown-linux-gnu", + "msp430-none-elf", ++ "powerpc-foxkit-linux-musl", + "powerpc-unknown-freebsd", + "powerpc-unknown-linux-gnu", + "powerpc-unknown-linux-gnuspe", +--- rustc-1.67.1-src/vendor/crossbeam-epoch/.cargo-checksum.json.old 2023-02-07 03:07:50.000000000 -0600 ++++ rustc-1.67.1-src/vendor/crossbeam-epoch/.cargo-checksum.json 2024-07-26 01:46:05.630708477 -0500 +@@ -1 +1 @@ +-{"files":{"CHANGELOG.md":"89683da081a7830300becd6e52f1996d37f018c60e7bc76902a21462d4e4ec0c","Cargo.lock":"5337104cfd3c43ac5c9c33db0ffdb0fcde7165be3cb5bfd74d2f0ecdc8d3061f","Cargo.toml":"3f6579af3614880f21730bbe8bef41accdca901fa37afb1ae9175df4893c2445","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"5734ed989dfca1f625b40281ee9f4530f91b2411ec01cb748223e7eb87e201ab","README.md":"d67d0cf57751a019707dd95785345ee181a10ea80237789bc3c19bf28c0d45ca","benches/defer.rs":"c330b704d96b2ad1aed29f72c37a99da534adef8cb06a3976d5f93bf567abb20","benches/flush.rs":"0389ac6c473632f0e93c962f223404cc360257f6699b4ec90b9b3be16bb6d74f","benches/pin.rs":"2f649a5153745c7930efdb32a52f9dc522f7b8cf548a251c5e2c82ee25dc3fff","build-common.rs":"502cb7494549bed6fa10ac7bea36e880eeb60290dc69b679ac5c92b376469562","build.rs":"901be3c21843440be5c456ff049f57f72ee5ec365918a772ad2a4751e52f69c5","examples/sanitize.rs":"a39d1635fa61e643e59192d7a63becc97ff81f03c1f4e03d38cedefb1525026a","no_atomic.rs":"3314524d2afa0360c947455a6e6566fb54ebf909c99479ca3b7435741fd3293e","src/atomic.rs":"1bd4275c1411852024533e8a70959dfedf72029e3253544d1fbb0cc18b6fd519","src/collector.rs":"29e5911f61510247659b0090517bd1a38d11e1ed86e35811603cb599962d9a58","src/default.rs":"62edf5e1f934eb82d8d7f010d6f25366e6851145a6f0a162372202bb63da1f3a","src/deferred.rs":"0c87df5797212778edd3c2d5fcf0cc04e8b9ed100261ecf9522f74a90804a3d5","src/epoch.rs":"d31e66d8fe62299928e25867336d96391b26a4fe890a1cae0885dfcf36d6835b","src/guard.rs":"f4439909152d38c03b6dfb6eeba6c9f07c39962187d461c92a492c27c258670b","src/internal.rs":"ac40ce276f0ed3dfd561926b78f775592eabb90790e177edde41fe50c13b8256","src/lib.rs":"a036d73230d0574011e67be11d275fe46439a1b5fc3295cb242d9179e5e0a220","src/sync/list.rs":"10aa4c59845ab9ff1d8bcb6f594b70bbe23c320fa7a2b125fdf85df88b9d61e2","src/sync/mod.rs":"326e32489d467e974c441120640a8338aa55da55c24b20276075ce9053997326","src/sync/once_lock.rs":"c03dc9c05a817e087dccf8b682f7307501542805533551da3c2bab442bc40743","src/sync/queue.rs":"06173b2255677d0d39178ceb49876fda2878f491e907c595eb65643dbb43c9ba","tests/loom.rs":"db772f4478966de6ec98774ca4093171dc942da635822a0d2d3257d31188cb9b"},"package":"01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a"} +\ No newline at end of file ++{"files":{"CHANGELOG.md":"89683da081a7830300becd6e52f1996d37f018c60e7bc76902a21462d4e4ec0c","Cargo.lock":"5337104cfd3c43ac5c9c33db0ffdb0fcde7165be3cb5bfd74d2f0ecdc8d3061f","Cargo.toml":"3f6579af3614880f21730bbe8bef41accdca901fa37afb1ae9175df4893c2445","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"5734ed989dfca1f625b40281ee9f4530f91b2411ec01cb748223e7eb87e201ab","README.md":"d67d0cf57751a019707dd95785345ee181a10ea80237789bc3c19bf28c0d45ca","benches/defer.rs":"c330b704d96b2ad1aed29f72c37a99da534adef8cb06a3976d5f93bf567abb20","benches/flush.rs":"0389ac6c473632f0e93c962f223404cc360257f6699b4ec90b9b3be16bb6d74f","benches/pin.rs":"2f649a5153745c7930efdb32a52f9dc522f7b8cf548a251c5e2c82ee25dc3fff","build-common.rs":"502cb7494549bed6fa10ac7bea36e880eeb60290dc69b679ac5c92b376469562","build.rs":"901be3c21843440be5c456ff049f57f72ee5ec365918a772ad2a4751e52f69c5","examples/sanitize.rs":"a39d1635fa61e643e59192d7a63becc97ff81f03c1f4e03d38cedefb1525026a","no_atomic.rs":"7c89906c54c571d20d021726c0b52ee22cf5eb951dcedfa8410863a789431dc8","src/atomic.rs":"1bd4275c1411852024533e8a70959dfedf72029e3253544d1fbb0cc18b6fd519","src/collector.rs":"29e5911f61510247659b0090517bd1a38d11e1ed86e35811603cb599962d9a58","src/default.rs":"62edf5e1f934eb82d8d7f010d6f25366e6851145a6f0a162372202bb63da1f3a","src/deferred.rs":"0c87df5797212778edd3c2d5fcf0cc04e8b9ed100261ecf9522f74a90804a3d5","src/epoch.rs":"d31e66d8fe62299928e25867336d96391b26a4fe890a1cae0885dfcf36d6835b","src/guard.rs":"f4439909152d38c03b6dfb6eeba6c9f07c39962187d461c92a492c27c258670b","src/internal.rs":"ac40ce276f0ed3dfd561926b78f775592eabb90790e177edde41fe50c13b8256","src/lib.rs":"a036d73230d0574011e67be11d275fe46439a1b5fc3295cb242d9179e5e0a220","src/sync/list.rs":"10aa4c59845ab9ff1d8bcb6f594b70bbe23c320fa7a2b125fdf85df88b9d61e2","src/sync/mod.rs":"326e32489d467e974c441120640a8338aa55da55c24b20276075ce9053997326","src/sync/once_lock.rs":"c03dc9c05a817e087dccf8b682f7307501542805533551da3c2bab442bc40743","src/sync/queue.rs":"06173b2255677d0d39178ceb49876fda2878f491e907c595eb65643dbb43c9ba","tests/loom.rs":"db772f4478966de6ec98774ca4093171dc942da635822a0d2d3257d31188cb9b"},"package":"01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a"} +--- rustc-1.60.0-src/vendor/valuable/no_atomic.rs.old 2022-04-04 11:10:57.000000000 +0000 ++++ rustc-1.60.0-src/vendor/valuable/no_atomic.rs 2022-11-23 07:36:37.687029241 +0000 +@@ -32,6 +32,7 @@ + "mipsel-unknown-none", + "mipsisa32r6-unknown-linux-gnu", + "mipsisa32r6el-unknown-linux-gnu", ++ "powerpc-foxkit-linux-musl", + "powerpc-unknown-freebsd", + "powerpc-unknown-linux-gnu", + "powerpc-unknown-linux-gnuspe", +--- rustc-1.60.0-src/vendor/valuable/.cargo-checksum.json.old 2022-04-04 11:10:57.000000000 +0000 ++++ rustc-1.60.0-src/vendor/valuable/.cargo-checksum.json 2022-11-23 07:38:07.397357603 +0000 +@@ -1 +1 @@ +-{"files":{"Cargo.lock":"fea5e41d2befef0b42734010a85f95548b5255ff1e4ee2dd2e6827adb8fe5f3e","Cargo.toml":"995a2454b4e3e583124d60b694e106ebd193b9742df3e050a6f49e5801b3597b","benches/structable.rs":"1baad763d1b0900004682b139efd58b17c974dc2068ede2229f8786e4a21372e","build.rs":"4ad508d818c27ee58bf7da2b9b4b425dae3e2656850327b3080fe2ad38767928","examples/derive.rs":"238473e63c0647cdb6652f1613575e24b323d40db5c8f3e5c32d64a3ea6b4048","examples/hello_world.rs":"75e48360e53b37e077e574d9c1aa2754b197f551ac5d604b03ebec9d31bab5cf","examples/print.rs":"924c55402b18e518317acc013a6cf407fcc13532c1eca8d9cd5f5631e79df960","no_atomic.rs":"b1c5cb0bd10733eb20516d10edc047b45aa67943f3347ae44fb779ed7fc7aff2","src/enumerable.rs":"008fe833c558f7e956ba0238a9d66947a671f66c5762905ed79d48a428c0ad44","src/field.rs":"c3d96f215c4bfc2a3910d0616fb335332d17f7dcf93ca739c933d88e1f98d229","src/lib.rs":"6954630c4c7c389192f3f8b5097076bbba6e43b5c4cd4ec68b4ffc18bff0a5b4","src/listable.rs":"f1a0743ed650604634972c19b66505a5727a6a6e2d7b54861e65cdcf10949432","src/mappable.rs":"ef7d334ef00d6b34cbff45b73b13935de6659933abafff9ad3d5d2a16d7ccac1","src/named_values.rs":"df5009074379ea59b02ebaf730890d0a4b6fa5c67c4057cc60f84d3652ca2bc5","src/slice.rs":"e382f56eb14ea7848276a4c8bda537f5207a4a6ed7a4b2ee4d2dde7feebce3b4","src/structable.rs":"369b17701d59bab138eac22ec043d434a052f49976236cc5ee680e72ca23ed6e","src/tuplable.rs":"e8b64a0761263666d984257109b5d54337cd97be59f08b08ec153e68ec1636c5","src/valuable.rs":"f8fdef201d3181935330fb86b27c455a5c86079f9f2cad363cda765801d7dd50","src/value.rs":"479d2c5b9d84c930e3abfe0032734ad92b243cf095f5fea6226a9da5eec81484","src/visit.rs":"060bacd3e1c0b333692f96c3ca970ca47a859cc28700713630996d9f0dc1668e"},"package":"830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"} +\ No newline at end of file ++{"files":{"Cargo.lock":"fea5e41d2befef0b42734010a85f95548b5255ff1e4ee2dd2e6827adb8fe5f3e","Cargo.toml":"995a2454b4e3e583124d60b694e106ebd193b9742df3e050a6f49e5801b3597b","benches/structable.rs":"1baad763d1b0900004682b139efd58b17c974dc2068ede2229f8786e4a21372e","build.rs":"4ad508d818c27ee58bf7da2b9b4b425dae3e2656850327b3080fe2ad38767928","examples/derive.rs":"238473e63c0647cdb6652f1613575e24b323d40db5c8f3e5c32d64a3ea6b4048","examples/hello_world.rs":"75e48360e53b37e077e574d9c1aa2754b197f551ac5d604b03ebec9d31bab5cf","examples/print.rs":"924c55402b18e518317acc013a6cf407fcc13532c1eca8d9cd5f5631e79df960","no_atomic.rs":"66d1146a63de2d24058f657aa14570038b96795a7facbab11402a96b6008f01a","src/enumerable.rs":"008fe833c558f7e956ba0238a9d66947a671f66c5762905ed79d48a428c0ad44","src/field.rs":"c3d96f215c4bfc2a3910d0616fb335332d17f7dcf93ca739c933d88e1f98d229","src/lib.rs":"6954630c4c7c389192f3f8b5097076bbba6e43b5c4cd4ec68b4ffc18bff0a5b4","src/listable.rs":"f1a0743ed650604634972c19b66505a5727a6a6e2d7b54861e65cdcf10949432","src/mappable.rs":"ef7d334ef00d6b34cbff45b73b13935de6659933abafff9ad3d5d2a16d7ccac1","src/named_values.rs":"df5009074379ea59b02ebaf730890d0a4b6fa5c67c4057cc60f84d3652ca2bc5","src/slice.rs":"e382f56eb14ea7848276a4c8bda537f5207a4a6ed7a4b2ee4d2dde7feebce3b4","src/structable.rs":"369b17701d59bab138eac22ec043d434a052f49976236cc5ee680e72ca23ed6e","src/tuplable.rs":"e8b64a0761263666d984257109b5d54337cd97be59f08b08ec153e68ec1636c5","src/valuable.rs":"f8fdef201d3181935330fb86b27c455a5c86079f9f2cad363cda765801d7dd50","src/value.rs":"479d2c5b9d84c930e3abfe0032734ad92b243cf095f5fea6226a9da5eec81484","src/visit.rs":"060bacd3e1c0b333692f96c3ca970ca47a859cc28700713630996d9f0dc1668e"},"package":"830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"} +--- rustc-1.60.0-src/vendor/crossbeam-utils/no_atomic.rs.old 2022-04-04 11:10:55.000000000 +0000 ++++ rustc-1.60.0-src/vendor/crossbeam-utils/no_atomic.rs 2022-11-23 07:36:50.575639725 +0000 +@@ -45,6 +45,7 @@ + "mipsisa32r6-unknown-linux-gnu", + "mipsisa32r6el-unknown-linux-gnu", + "msp430-none-elf", ++ "powerpc-foxkit-linux-musl", + "powerpc-unknown-freebsd", + "powerpc-unknown-linux-gnu", + "powerpc-unknown-linux-gnuspe", +--- rustc-1.67.1-src/vendor/crossbeam-utils/.cargo-checksum.json.old 2023-02-07 03:07:50.000000000 -0600 ++++ rustc-1.67.1-src/vendor/crossbeam-utils/.cargo-checksum.json 2024-07-26 01:46:25.058636358 -0500 +@@ -1 +1 @@ +-{"files":{"CHANGELOG.md":"fbcdd2c242af3f8eab76ca3dff71f4c9b1d569db6039ab2f7e331417122d121d","Cargo.toml":"0916d9452f9f79784ac417256b661caa0c95f1b0d3107ad3af2991026707fa61","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"5734ed989dfca1f625b40281ee9f4530f91b2411ec01cb748223e7eb87e201ab","README.md":"2a19af38a52dd965c2d66bb39f90a85b430b51ee9ccb29e9e1978ee7091e5087","benches/atomic_cell.rs":"c927eb3cd1e5ecc4b91adbc3bde98af15ffab4086190792ba64d5cde0e24df3d","build-common.rs":"502cb7494549bed6fa10ac7bea36e880eeb60290dc69b679ac5c92b376469562","build.rs":"ec1d47ec36b3670a6e67955a104851ee7125616888e78bd03b93304e12cd1c50","no_atomic.rs":"3314524d2afa0360c947455a6e6566fb54ebf909c99479ca3b7435741fd3293e","src/atomic/atomic_cell.rs":"0fc99463e633144c5d59d39c35b5477da1f1b90f5448cadc37454b7f4b97707e","src/atomic/consume.rs":"7a7736fcd64f6473dfea7653559ffc5e1a2a234df43835f8aa8734862145ac15","src/atomic/mod.rs":"94193895fa03cece415e8d7be700b73a9a8a7015774ca821253438607f9b0736","src/atomic/seq_lock.rs":"27182e6b87a9db73c5f6831759f8625f9fcdec3c2828204c444aef04f427735a","src/atomic/seq_lock_wide.rs":"9888dd03116bb89ca36d4ab8d5a0b5032107a2983a7eb8024454263b09080088","src/backoff.rs":"8fd5e3dcccc05860680e49c8498de8096bee9140bcfee8723d97117106a020d0","src/cache_padded.rs":"8bb8925e2df44224ffa29f31a2f9c08d88d8bd3df6c1ce47003598225055fdb5","src/lib.rs":"6f1bcf157abe06ad8458a53e865bf8efab9fad4a9424790147cee8fefb3795d8","src/sync/mod.rs":"eca73c04f821859b8434d2b93db87d160dc6a3f65498ca201cd40d732ca4c134","src/sync/once_lock.rs":"c03dc9c05a817e087dccf8b682f7307501542805533551da3c2bab442bc40743","src/sync/parker.rs":"91f3a7d4ee8d9e06b6558d180e8a0df08ff5c6cef612b4ce4790f9f75cb34f84","src/sync/sharded_lock.rs":"6391b3b99b194b8e0888446c2dec340e4fb095753bcf0c1a80bc654f9c8be0e3","src/sync/wait_group.rs":"3e339aab014f50e214fea535c841755113ea058153378ed54e50a4acb403c937","src/thread.rs":"21cf9b3e965529e5c0a6ff8fc1ec846bfe0006c41deb238a149be8d07384e955","tests/atomic_cell.rs":"bf8bc869c922a1cbf929c3b741bae0cae98f2157f572b5a4eb2873d20a407c22","tests/cache_padded.rs":"1bfaff8354c8184e1ee1f902881ca9400b60effb273b0d3f752801a483d2b66d","tests/parker.rs":"6def4721287d9d70b1cfd63ebb34e1c83fbb3376edbad2bc8aac6ef69dd99d20","tests/sharded_lock.rs":"314adeb8a651a28935f7a49c9a261b8fa1fd82bf6a16c865a5aced6216d7e40b","tests/thread.rs":"9a7d7d3028c552fd834c68598b04a1cc252a816bc20ab62cec060d6cd09cab10","tests/wait_group.rs":"02661c2a820a5abe8b0c8fe15a6650aead707b57cdda0610d1b09a2680ed6969"},"package":"4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f"} +\ No newline at end of file ++{"files":{"CHANGELOG.md":"fbcdd2c242af3f8eab76ca3dff71f4c9b1d569db6039ab2f7e331417122d121d","Cargo.toml":"0916d9452f9f79784ac417256b661caa0c95f1b0d3107ad3af2991026707fa61","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"5734ed989dfca1f625b40281ee9f4530f91b2411ec01cb748223e7eb87e201ab","README.md":"2a19af38a52dd965c2d66bb39f90a85b430b51ee9ccb29e9e1978ee7091e5087","benches/atomic_cell.rs":"c927eb3cd1e5ecc4b91adbc3bde98af15ffab4086190792ba64d5cde0e24df3d","build-common.rs":"502cb7494549bed6fa10ac7bea36e880eeb60290dc69b679ac5c92b376469562","build.rs":"ec1d47ec36b3670a6e67955a104851ee7125616888e78bd03b93304e12cd1c50","no_atomic.rs":"7c89906c54c571d20d021726c0b52ee22cf5eb951dcedfa8410863a789431dc8","src/atomic/atomic_cell.rs":"0fc99463e633144c5d59d39c35b5477da1f1b90f5448cadc37454b7f4b97707e","src/atomic/consume.rs":"7a7736fcd64f6473dfea7653559ffc5e1a2a234df43835f8aa8734862145ac15","src/atomic/mod.rs":"94193895fa03cece415e8d7be700b73a9a8a7015774ca821253438607f9b0736","src/atomic/seq_lock.rs":"27182e6b87a9db73c5f6831759f8625f9fcdec3c2828204c444aef04f427735a","src/atomic/seq_lock_wide.rs":"9888dd03116bb89ca36d4ab8d5a0b5032107a2983a7eb8024454263b09080088","src/backoff.rs":"8fd5e3dcccc05860680e49c8498de8096bee9140bcfee8723d97117106a020d0","src/cache_padded.rs":"8bb8925e2df44224ffa29f31a2f9c08d88d8bd3df6c1ce47003598225055fdb5","src/lib.rs":"6f1bcf157abe06ad8458a53e865bf8efab9fad4a9424790147cee8fefb3795d8","src/sync/mod.rs":"eca73c04f821859b8434d2b93db87d160dc6a3f65498ca201cd40d732ca4c134","src/sync/once_lock.rs":"c03dc9c05a817e087dccf8b682f7307501542805533551da3c2bab442bc40743","src/sync/parker.rs":"91f3a7d4ee8d9e06b6558d180e8a0df08ff5c6cef612b4ce4790f9f75cb34f84","src/sync/sharded_lock.rs":"6391b3b99b194b8e0888446c2dec340e4fb095753bcf0c1a80bc654f9c8be0e3","src/sync/wait_group.rs":"3e339aab014f50e214fea535c841755113ea058153378ed54e50a4acb403c937","src/thread.rs":"21cf9b3e965529e5c0a6ff8fc1ec846bfe0006c41deb238a149be8d07384e955","tests/atomic_cell.rs":"bf8bc869c922a1cbf929c3b741bae0cae98f2157f572b5a4eb2873d20a407c22","tests/cache_padded.rs":"1bfaff8354c8184e1ee1f902881ca9400b60effb273b0d3f752801a483d2b66d","tests/parker.rs":"6def4721287d9d70b1cfd63ebb34e1c83fbb3376edbad2bc8aac6ef69dd99d20","tests/sharded_lock.rs":"314adeb8a651a28935f7a49c9a261b8fa1fd82bf6a16c865a5aced6216d7e40b","tests/thread.rs":"9a7d7d3028c552fd834c68598b04a1cc252a816bc20ab62cec060d6cd09cab10","tests/wait_group.rs":"02661c2a820a5abe8b0c8fe15a6650aead707b57cdda0610d1b09a2680ed6969"},"package":"4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f"} |