Skip to Content.
Sympa Menu

sm-commit - [SM-Commit] GIT changes to master grimoire by Ismael Luceno (e51e515fa907554a932d023452925b74eb81c634)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: Ismael Luceno <scm AT sourcemage.org>
  • To: sm-commit AT lists.ibiblio.org
  • Subject: [SM-Commit] GIT changes to master grimoire by Ismael Luceno (e51e515fa907554a932d023452925b74eb81c634)
  • Date: Thu, 7 Jan 2021 17:50:26 +0000

GIT changes to master grimoire by Ismael Luceno <ismael AT sourcemage.org>:

devel/rust/DETAILS
| 14
devel/rust/HISTORY
| 18

devel/rust/patches/0001-Allow-to-build-against-libressl-3.2.x-and-3.3.x.patch
| 26
devel/rust/patches/0001-Fix-LLVM-build.patch
| 26
devel/rust/patches/0001-libressl-version-check.patch
| 13
devel/rust/patches/00016-do-not-copy-libunwind.patch
| 26
devel/rust/patches/0002-Fix-LLVM-build.patch
| 27

devel/rust/patches/0003-Remove-nostdlib-and-musl_root-from-musl-targets.patch
| 346 ++++++++++
devel/rust/patches/0004-Prefer-libgcc_eh-over-libunwind-on-musl.patch
| 65 +

devel/rust/patches/0004-Remove-nostdlib-and-musl_root-from-musl-targets.patch
| 336 ---------
devel/rust/patches/0005-Prefer-libgcc_eh-over-libunwind-on-musl.patch
| 66 -

devel/rust/patches/0005-Revert-Include-libunwind-in-the-rust-src-component.patch
| 28
devel/rust/patches/0006-Link-with-ssp_nonshared.patch
| 61 +
devel/rust/patches/0007-Link-stage2-tools-dynamically-to-libstd.patch
| 33
devel/rust/patches/0008-Move-debugger-scripts-to-usr-share-rust.patch
| 40 +
devel/rust/patches/0009-Dynamically-link-libc-on-musl-by-default.patch
| 32
devel/rust/patches/0009-Link-stage2-tools-dynamically-to-libstd.patch
| 31
devel/rust/patches/0010-Move-debugger-scripts-to-usr-share-rust.patch
| 37 -
devel/rust/patches/0011-Dynamically-link-libc-on-musl-by-default.patch
| 26

devel/rust/patches/0012-Fix-dynamic-linkage-of-musl-libc-for-the-libc-crate.patch
| 45 -
devel/rust/patches/need-ssp_nonshared.patch
| 23
21 files changed, 683 insertions(+), 636 deletions(-)

New commits:
commit e51e515fa907554a932d023452925b74eb81c634
Author: Ismael Luceno <ismael AT sourcemage.org>
Commit: Ismael Luceno <ismael AT sourcemage.org>

rust 1.49.0

diff --git a/devel/rust/DETAILS b/devel/rust/DETAILS
index b889f0d..7b5e1ab0 100755
--- a/devel/rust/DETAILS
+++ b/devel/rust/DETAILS
@@ -1,5 +1,5 @@
SPELL=rust
- VERSION=1.48.0
+ VERSION=1.49.0
SOURCE_DIRECTORY=$BUILD_DIRECTORY/rustc-$VERSION-src
TMPFS=off
SOURCE=rustc-$VERSION-src.tar.xz
@@ -18,14 +18,14 @@ SOURCE_DIRECTORY=$BUILD_DIRECTORY/rustc-$VERSION-src
SOURCE2_IGNORE=signature
case "${BUILDX}" in
x86_64-unknown-linux-musl)
-
SOURCE3_HASH=sha512:557dde175f5f9469fcab3f46c84a58c1a3d10527cac0a953b8c0f6abaaeeed3938e49f4c06db0d8ee5310cf8cd76ffef380acca8aa58d151a176e94263cde29f
-
SOURCE4_HASH=sha512:0337cc460ffabbc85729fa53314ff8bfad287e67a300f8782a780e047f428b82dc995e58d7c35bdadf8796aa9a5890f726c65def25cd78c5d9b385eb21b4817e
-
SOURCE5_HASH=sha512:c20a247c0f9d116d99082d87a7c8d863b6349dfa2025bdda143f36636a200fa59262e65fa5542879880898931279745bed4591001ba20663291233317e9d5cc8
+
SOURCE3_HASH=sha512:1655604a69e1e5b0bfca0ed0b5a2d59dc6379f5fcc01d0a23383196f28c4a435d397333c26a3e3ae664280f1951cb3abe2a964c5b7648b518b114253cdcc6f71
+
SOURCE4_HASH=sha512:5456ea31b927d1698ee974ebdbe42ae67a01b847028d275120c39cbf48da1b654e3259c8f4b4ee2c1ae3ec3607169320dbdf7c295f80330ca02ca4fd47de4982
+
SOURCE5_HASH=sha512:0115d2116df97c5a7ce36b3329829f8d5cd28897603f953ce3da740eeaedc49a606ead448f0afcfeb63bb7a4f99cb0988d4c4e56159c651e85347dd6de1f0d38
;;
x86_64-unknown-linux-gnu)
-
SOURCE3_HASH=sha512:6b3cc6bd7c1ec9038f44f6392883de4eed3c6ae11368fd0538b6a9797780625607caf99f9e3ca1648499afaf341bc5728c397b7512885d637aee359db8a64811
-
SOURCE4_HASH=sha512:6ff6b9b8e7aa2e0274857ff10e39d594a89356ec7744eb248ac8004fa307c7f0e899832aab62c508236d98aeb4a895c3fb31224b9ac77d39ef86d436c38994b9
-
SOURCE5_HASH=sha512:e139962eb98bccc237bd12a75891f623782b1a1ff667241493f05e2740886b6b7cb22afb7ad4695e29773677fc0a0f8bdee90c03116ea25c13c0b2f7f1a4e0bb
+
SOURCE3_HASH=sha512:bb1bdebdd6fd692cca3ad73538ec1ffe9157eb07382628dbcc7ffaf7f19b9341c100731d43050584572e430a3e97bd73774036dfe3a4b7e00d22598e3d883b0e
+
SOURCE4_HASH=sha512:15589f387602d1b785e9482f42afb449df2add70637ca8314fb2f5d6cb776b61eab431c573cde73eaea8ecf9f12b47baf6ff5d344482e3eec89ba6d3b4e98ebd
+
SOURCE5_HASH=sha512:c3c4094adb2df1c8037434ca959e5e9dd10c4818f45aaf37967f3ba819e6e332a15f1a23039a3a425369453407bcc67d7b6331fcf480227d7d9aa028c7b297c6
;;
esac
WEB_SITE=https://www.rust-lang.org/
diff --git a/devel/rust/HISTORY b/devel/rust/HISTORY
index 849ec02..c2df1e7 100644
--- a/devel/rust/HISTORY
+++ b/devel/rust/HISTORY
@@ -1,3 +1,21 @@
+2021-01-07 Ismael Luceno <ismael AT iodev.co.uk>
+ * patches/0001-{libressl-version-check =>
Allow-to-build-against-libressl-3.2.x-and-3.3.x}.patch,
+ patches/000{1 => 2}-Fix-LLVM-build.patch,
+ patches/000{16-do-not-copy-libunwind =>
5-Revert-Include-libunwind-in-the-rust-src-component}.patch,
+ patches/000{9 => 7}-Link-stage2-tools-dynamically-to-libstd.patch,
+ patches/00{10 => 08}-Move-debugger-scripts-to-usr-share-rust.patch:
+ Renamed by git-format-patch
+ *
patches/0012-Fix-dynamic-linkage-of-musl-libc-for-the-libc-crate.patch:
+ Removed, no longer needed
+ * patches/000{4 =>
3}-Remove-nostdlib-and-musl_root-from-musl-targets.patch,
+ patches/000{5 => 4}-Prefer-libgcc_eh-over-libunwind-on-musl.patch,
+ patches/{need => 0006-Link-with}-ssp_nonshared.patch,
+ patches/00{11 => 09}-Dynamically-link-libc-on-musl-by-default.patch:
+ Updated for 1.49.0
+
+2020-12-31 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * DETAILS: version 1.49.0
+
2020-12-29 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* DETAILS: fix checksums for glibc-based bootstrappers

diff --git
a/devel/rust/patches/0001-Allow-to-build-against-libressl-3.2.x-and-3.3.x.patch

b/devel/rust/patches/0001-Allow-to-build-against-libressl-3.2.x-and-3.3.x.patch
new file mode 100644
index 0000000..472956e
--- /dev/null
+++
b/devel/rust/patches/0001-Allow-to-build-against-libressl-3.2.x-and-3.3.x.patch
@@ -0,0 +1,26 @@
+From 7ba0212765c29cd61df1e10c0f8a132a6d28d9c1 Mon Sep 17 00:00:00 2001
+From: Ismael Luceno <ismael AT iodev.co.uk>
+Date: Tue, 29 Dec 2020 18:11:00 +0100
+Subject: [PATCH 01/10] Allow to build against libressl 3.2.x and 3.3.x
+
+Signed-off-by: Ismael Luceno <ismael AT iodev.co.uk>
+---
+ vendor/openssl-sys/build/main.rs | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/vendor/openssl-sys/build/main.rs
b/vendor/openssl-sys/build/main.rs
+index 49f26d2b7f37..6bacc16237ab 100644
+--- a/vendor/openssl-sys/build/main.rs
++++ b/vendor/openssl-sys/build/main.rs
+@@ -221,6 +221,8 @@ See rust-openssl README for more information:
+ (3, 1, 0) => ('3', '1', '0'),
+ (3, 1, _) => ('3', '1', 'x'),
+ (3, 2, 0) => ('3', '2', '0'),
++ (3, 2, _) => ('3', '2', 'x'),
++ (3, 3, _) => ('3', '3', 'x'),
+ _ => version_error(),
+ };
+
+--
+2.30.0
+
diff --git a/devel/rust/patches/0001-Fix-LLVM-build.patch
b/devel/rust/patches/0001-Fix-LLVM-build.patch
deleted file mode 100644
index 0da829a..0000000
--- a/devel/rust/patches/0001-Fix-LLVM-build.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 4443eca0d6b3ba599832b2f73a5350fdd0c90d10 Mon Sep 17 00:00:00 2001
-From: Samuel Holland <samuel AT sholland.org>
-Date: Fri, 8 Sep 2017 00:04:29 -0500
-Subject: [PATCH 01/15] Fix LLVM build
-
----
- src/bootstrap/lib.rs | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs
-index a476d25f..c7e63990 100644
---- a/src/bootstrap/lib.rs
-+++ b/src/bootstrap/lib.rs
-@@ -768,7 +768,8 @@ impl Build {
- .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.26.2
-
diff --git a/devel/rust/patches/0001-libressl-version-check.patch
b/devel/rust/patches/0001-libressl-version-check.patch
deleted file mode 100644
index 1f7ad50..0000000
--- a/devel/rust/patches/0001-libressl-version-check.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Allow to build against libressl 3.2.x & 3.3.x.
-
---- a/vendor/openssl-sys/build/main.rs
-+++ b/vendor/openssl-sys/build/main.rs
-@@ -221,5 +221,7 @@ See rust-openssl README for more information:
- (3, 1, 0) => ('3', '1', '0'),
- (3, 1, _) => ('3', '1', 'x'),
- (3, 2, 0) => ('3', '2', '0'),
-+ (3, 2, _) => ('3', '2', 'x'),
-+ (3, 3, _) => ('3', '3', 'x'),
- _ => version_error(),
- };
-
diff --git a/devel/rust/patches/00016-do-not-copy-libunwind.patch
b/devel/rust/patches/00016-do-not-copy-libunwind.patch
deleted file mode 100644
index 73c496a..0000000
--- a/devel/rust/patches/00016-do-not-copy-libunwind.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 227096bde5283269aa1d1002860b6ec54d2cf284 Mon Sep 17 00:00:00 2001
-From: Johannes Brechtmann <johannes.brechtmann AT gmail.com>
-Date: Sun, 22 Nov 2020 16:00:50 +0100
-Subject: [PATCH] Revert "Include libunwind in the rust-src component."
-
-This reverts commit 9f27f3796d3487411ab035803a0757d69040649c.
----
- src/bootstrap/dist.rs | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs
-index b2a590307a2..020cd665a0e 100644
---- a/src/bootstrap/dist.rs
-+++ b/src/bootstrap/dist.rs
-@@ -1016,7 +1016,7 @@ impl Step for Src {
- copy_src_dirs(
- builder,
- &builder.src,
-- &["library", "src/llvm-project/libunwind"],
-+ &["library"],
- &[
- // not needed and contains symlinks which rustup currently
- // chokes on when unpacking.
---
-2.29.2
-
diff --git a/devel/rust/patches/0002-Fix-LLVM-build.patch
b/devel/rust/patches/0002-Fix-LLVM-build.patch
new file mode 100644
index 0000000..b555a0c
--- /dev/null
+++ b/devel/rust/patches/0002-Fix-LLVM-build.patch
@@ -0,0 +1,27 @@
+From 584ab4467bb72f89bbc24445c29722c59bb27984 Mon Sep 17 00:00:00 2001
+From: Samuel Holland <samuel AT sholland.org>
+Date: Fri, 8 Sep 2017 00:04:29 -0500
+Subject: [PATCH 02/10] Fix LLVM build
+
+Signed-off-by: Ismael Luceno <ismael AT iodev.co.uk>
+---
+ src/bootstrap/lib.rs | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs
+index ff8548a0f0bb..210084cf5ea6 100644
+--- a/src/bootstrap/lib.rs
++++ b/src/bootstrap/lib.rs
+@@ -834,7 +834,8 @@ impl Build {
+ .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.30.0
+
diff --git
a/devel/rust/patches/0003-Remove-nostdlib-and-musl_root-from-musl-targets.patch

b/devel/rust/patches/0003-Remove-nostdlib-and-musl_root-from-musl-targets.patch
new file mode 100644
index 0000000..ca5c436
--- /dev/null
+++
b/devel/rust/patches/0003-Remove-nostdlib-and-musl_root-from-musl-targets.patch
@@ -0,0 +1,346 @@
+From 273a82b22a5ac25eebb076145caa9b953a3c7671 Mon Sep 17 00:00:00 2001
+From: Samuel Holland <samuel AT sholland.org>
+Date: Wed, 6 Jan 2021 23:01:33 +0100
+Subject: [PATCH 03/10] Remove -nostdlib and musl_root from musl targets
+
+[ismael AT sourcemage.org: Updated for rust 1.49.0]
+
+Signed-off-by: Ismael Luceno <ismael AT iodev.co.uk>
+---
+ compiler/rustc_target/src/spec/crt_objects.rs | 15 ----------
+ .../rustc_target/src/spec/linux_musl_base.rs | 3 --
+ config.toml.example | 9 ------
+ src/bootstrap/cc_detect.rs | 25 ++--------------
+ src/bootstrap/compile.rs | 30 +------------------
+ src/bootstrap/config.rs | 10 -------
+ src/bootstrap/configure.py | 28 -----------------
+ src/bootstrap/lib.rs | 19 ------------
+ src/bootstrap/sanity.rs | 22 --------------
+ 9 files changed, 3 insertions(+), 158 deletions(-)
+
+diff --git a/compiler/rustc_target/src/spec/crt_objects.rs
b/compiler/rustc_target/src/spec/crt_objects.rs
+index 76c0bf419e8c..5ea8a69265ff 100644
+--- a/compiler/rustc_target/src/spec/crt_objects.rs
++++ b/compiler/rustc_target/src/spec/crt_objects.rs
+@@ -61,21 +61,6 @@ pub(super) fn all(obj: &str) -> CrtObjects {
+ ])
+ }
+
+-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"]),
+diff --git a/compiler/rustc_target/src/spec/linux_musl_base.rs
b/compiler/rustc_target/src/spec/linux_musl_base.rs
+index 5038a967d0a0..bc432445bea7 100644
+--- a/compiler/rustc_target/src/spec/linux_musl_base.rs
++++ b/compiler/rustc_target/src/spec/linux_musl_base.rs
+@@ -5,9 +5,6 @@ pub fn opts() -> TargetOptions {
+ let mut base = super::linux_base::opts();
+
+ base.env = "musl".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;
+diff --git a/config.toml.example b/config.toml.example
+index c9e183887504..1c217d18f840 100644
+--- a/config.toml.example
++++ b/config.toml.example
+@@ -601,15 +601,6 @@ changelog-seen = 2
+ # 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 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 = "..."
+-
+-# 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 e750c2963ddd..f6ba3032b0d5 100644
+--- a/src/bootstrap/cc_detect.rs
++++ b/src/bootstrap/cc_detect.rs
+@@ -98,7 +98,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();
+@@ -126,7 +126,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).
+@@ -157,7 +157,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
+@@ -200,26 +199,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 cdad1cb4d499..26552ece3e91 100644
+--- a/src/bootstrap/compile.rs
++++ b/src/bootstrap/compile.rs
+@@ -166,26 +166,7 @@ fn copy_self_contained_objects(
+ t!(fs::create_dir_all(&libdir_self_contained));
+ let mut target_deps = vec![];
+
+- // Copies the 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();
+- 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(
+ builder,
+@@ -260,15 +241,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 c0753d88504a..55ff57dca8d4 100644
+--- a/src/bootstrap/config.rs
++++ b/src/bootstrap/config.rs
+@@ -156,8 +156,6 @@ pub struct Config {
+ pub print_step_timings: 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>,
+@@ -282,8 +280,6 @@ pub struct Target {
+ pub sanitizers: bool,
+ pub profiler: 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,
+@@ -469,7 +465,6 @@ struct Rust {
+ parallel_compiler: Option<bool>,
+ default_linker: Option<String>,
+ channel: Option<String>,
+- musl_root: Option<String>,
+ rpath: Option<bool>,
+ verbose_tests: Option<bool>,
+ optimize_tests: Option<bool>,
+@@ -508,8 +503,6 @@ struct TomlTarget {
+ sanitizers: Option<bool>,
+ profiler: Option<bool>,
+ crt_static: Option<bool>,
+- musl_root: Option<String>,
+- musl_libdir: Option<String>,
+ wasi_root: Option<String>,
+ qemu_rootfs: Option<String>,
+ no_std: Option<bool>,
+@@ -850,7 +843,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);
+@@ -890,8 +882,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.unwrap_or(build.sanitizers.unwrap_or_default());
+diff --git a/src/bootstrap/configure.py b/src/bootstrap/configure.py
+index 322e9d692329..47c7432f38c2 100755
+--- a/src/bootstrap/configure.py
++++ b/src/bootstrap/configure.py
+@@ -109,34 +109,6 @@ v("aarch64-linux-android-ndk",
"target.aarch64-linux-android.android-ndk",
+ "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 210084cf5ea6..56c188a75c52 100644
+--- a/src/bootstrap/lib.rs
++++ b/src/bootstrap/lib.rs
+@@ -922,25 +922,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 4cfcf6ca407b..c51168779579 100644
+--- a/src/bootstrap/sanity.rs
++++ b/src/bootstrap/sanity.rs
+@@ -171,28 +171,6 @@ pub fn check(build: &mut Build) {
+ }
+ }
+
+- // 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.clone()).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"
+- ),
+- }
+- }
+-
+ if target.contains("msvc") {
+ // There are three builds of cmake on windows: MSVC, MinGW, and
+ // Cygwin. The Cygwin build does not have generators for Visual
+--
+2.30.0
+
diff --git
a/devel/rust/patches/0004-Prefer-libgcc_eh-over-libunwind-on-musl.patch
b/devel/rust/patches/0004-Prefer-libgcc_eh-over-libunwind-on-musl.patch
new file mode 100644
index 0000000..1eb967f
--- /dev/null
+++ b/devel/rust/patches/0004-Prefer-libgcc_eh-over-libunwind-on-musl.patch
@@ -0,0 +1,65 @@
+From abe43a02c59cc9bd9b296b24de7b30b01aa1f856 Mon Sep 17 00:00:00 2001
+From: q66 <daniel AT octaforge.org>
+Date: Sun, 3 May 2020 17:55:50 +0200
+Subject: [PATCH 04/10] Prefer libgcc_eh over libunwind on musl
+
+Signed-off-by: Ismael Luceno <ismael AT iodev.co.uk>
+---
+ library/unwind/build.rs | 13 ++-----------
+ library/unwind/src/lib.rs | 2 +-
+ 2 files changed, 3 insertions(+), 12 deletions(-)
+
+diff --git a/library/unwind/build.rs b/library/unwind/build.rs
+index 24bcd40c3a8e..3196435865df 100644
+--- a/library/unwind/build.rs
++++ b/library/unwind/build.rs
+@@ -5,7 +5,7 @@ fn main() {
+ let target = env::var("TARGET").expect("TARGET was not set");
+
+ if cfg!(feature = "llvm-libunwind")
+- && ((target.contains("linux") && !target.contains("musl")) ||
target.contains("fuchsia"))
++ && (target.contains("linux") || target.contains("fuchsia"))
+ {
+ // Build the unwinding from libunwind C/C++ source code.
+ llvm_libunwind::compile();
+@@ -14,7 +14,7 @@ fn main() {
+ } else if target.contains("linux") {
+ // linking for Linux is handled in lib.rs
+ if target.contains("musl") {
+- llvm_libunwind::compile();
++ println!("cargo:rustc-link-lib=gcc_s");
+ }
+ } else if target.contains("freebsd") {
+ println!("cargo:rustc-link-lib=gcc_s");
+@@ -143,15 +143,6 @@ mod llvm_libunwind {
+ cfg.file(root.join("src").join(src));
+ }
+
+- if target_env == "musl" {
+- // use the same C compiler command to compile C++ code so we do
not need to setup the
+- // C++ compiler env variables on the builders
+- cfg.cpp(false);
+- // linking for musl is handled in lib.rs
+- cfg.cargo_metadata(false);
+- println!("cargo:rustc-link-search=native={}",
env::var("OUT_DIR").unwrap());
+- }
+-
+ cfg.compile("unwind");
+ }
+ }
+diff --git a/library/unwind/src/lib.rs b/library/unwind/src/lib.rs
+index dbdefa471a9e..cb83404cbd8b 100644
+--- a/library/unwind/src/lib.rs
++++ b/library/unwind/src/lib.rs
+@@ -38,7 +38,7 @@ cfg_if::cfg_if! {
+ }
+
+ #[cfg(target_env = "musl")]
+-#[link(name = "unwind", kind = "static", cfg(target_feature =
"crt-static"))]
++#[link(name = "gcc_eh", cfg(target_feature = "crt-static"))]
+ #[link(name = "gcc_s", cfg(not(target_feature = "crt-static")))]
+ extern "C" {}
+
+--
+2.30.0
+
diff --git
a/devel/rust/patches/0004-Remove-nostdlib-and-musl_root-from-musl-targets.patch

b/devel/rust/patches/0004-Remove-nostdlib-and-musl_root-from-musl-targets.patch
deleted file mode 100644
index 326ed1a..0000000
---
a/devel/rust/patches/0004-Remove-nostdlib-and-musl_root-from-musl-targets.patch
+++ /dev/null
@@ -1,336 +0,0 @@
-From 4654172e942b5b9250aff70101d54bc880060073 Mon Sep 17 00:00:00 2001
-From: Samuel Holland <samuel AT sholland.org>
-Date: Sun, 3 May 2020 17:53:33 +0200
-Subject: [PATCH 04/15] Remove -nostdlib and musl_root from musl targets
-
----
- config.toml.example | 3 ---
- src/bootstrap/cc_detect.rs | 25 ++----------------
- src/bootstrap/compile.rs | 22 +---------------
- src/bootstrap/config.rs | 7 ------
- src/bootstrap/configure.py | 28 ---------------------
- src/bootstrap/lib.rs | 10 --------
- src/bootstrap/sanity.rs | 22 ----------------
- src/librustc_target/spec/linux_musl_base.rs | 16 ------------
- 8 files changed, 3 insertions(+), 130 deletions(-)
-
---- a/config.toml.example
-+++ b/config.toml.example
-@@ -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 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 = "..."
--
--# 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
-+++ b/src/bootstrap/cc_detect.rs
-@@ -97,7 +97,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();
-@@ -125,7 +125,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 {
- false
-@@ -154,7 +154,6 @@ fn set_compiler(
- compiler: Language,
- target: Interned<String>,
- config: Option<&Target>,
-- build: &Build,
- ) {
- match &*target {
- // When compiling for android we may have the NDK configured in the
-@@ -196,26 +195,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 65a00db3..01fd2cf3 100644
---- a/src/bootstrap/compile.rs
-+++ b/src/bootstrap/compile.rs
-@@ -169,26 +169,7 @@
- t!(fs::create_dir_all(&libdir_self_contained));
- let mut target_deps = vec![];
-
-- // Copies the 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();
-- 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(
- 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_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 56164b74..8c46334a 100644
---- a/src/bootstrap/config.rs
-+++ b/src/bootstrap/config.rs
-@@ -154,8 +154,6 @@
- pub print_step_timings: 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>,
-@@ -252,8 +250,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,
-@@ -438,7 +434,6 @@
- parallel_compiler: Option<bool>,
- default_linker: Option<String>,
- channel: Option<String>,
-- musl_root: Option<String>,
- rpath: Option<bool>,
- verbose_tests: Option<bool>,
- optimize_tests: Option<bool>,
-@@ -475,8 +470,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>,
-@@ -806,7 +799,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;
-- 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);
-@@ -846,8 +838,6 @@
- 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);
-
-diff --git a/src/bootstrap/configure.py b/src/bootstrap/configure.py
-index 2a46c563..025928b9 100755
---- a/src/bootstrap/configure.py
-+++ b/src/bootstrap/configure.py
-@@ -110,34 +110,6 @@ v("aarch64-linux-android-ndk",
"target.aarch64-linux-android.android-ndk",
- "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",
---- a/src/bootstrap/lib.rs
-+++ b/src/bootstrap/lib.rs
-@@ -876,25 +876,6 @@
- }
- }
-
-- /// 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 530e74da..8ec9f046 100644
---- a/src/bootstrap/sanity.rs
-+++ b/src/bootstrap/sanity.rs
-@@ -191,28 +191,6 @@
- }
- }
-
-- // 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.clone()).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"
-- ),
-- }
-- }
--
- if target.contains("msvc") {
- // There are three builds of cmake on windows: MSVC, MinGW, and
- // Cygwin. The Cygwin build does not have generators for Visual
-diff --git a/src/librustc_target/spec/linux_musl_base.rs
b/src/librustc_target/spec/linux_musl_base.rs
-index e294e639..58ae91a9 100644
---- a/compiler/rustc_target/src/spec/linux_musl_base.rs
-+++ b/compiler/rustc_target/src/spec/linux_musl_base.rs
-@@ -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());
-
-- 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/compiler/rustc_target/src/spec/crt_objects.rs.orig 2020-08-07
01:01:58.142394507 +0200
-+++ b/compiler/rustc_target/src/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
diff --git
a/devel/rust/patches/0005-Prefer-libgcc_eh-over-libunwind-on-musl.patch
b/devel/rust/patches/0005-Prefer-libgcc_eh-over-libunwind-on-musl.patch
deleted file mode 100644
index 6571cb3..0000000
--- a/devel/rust/patches/0005-Prefer-libgcc_eh-over-libunwind-on-musl.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From a640bce17d908a0691d53f22e5257353f694d9b6 Mon Sep 17 00:00:00 2001
-From: q66 <daniel AT octaforge.org>
-Date: Sun, 3 May 2020 17:55:50 +0200
-Subject: [PATCH 05/15] Prefer libgcc_eh over libunwind on musl
-
----
- src/libunwind/build.rs | 16 ++--------------
- src/libunwind/lib.rs | 2 +-
- 2 files changed, 3 insertions(+), 15 deletions(-)
-
-diff --git a/src/libunwind/build.rs b/src/libunwind/build.rs
-index a24808b3..a1250889 100644
---- a/library/unwind/build.rs
-+++ b/library/unwind/build.rs
-@@ -5,17 +5,14 @@
- let target = env::var("TARGET").expect("TARGET was not set");
-
- if cfg!(feature = "llvm-libunwind")
-- && ((target.contains("linux") && !target.contains("musl")) ||
target.contains("fuchsia"))
-+ && (target.contains("linux") || target.contains("fuchsia"))
- {
- // 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
-- llvm_libunwind::compile();
-- } else if !target.contains("android") {
-+ if !target.contains("android") {
- println!("cargo:rustc-link-lib=gcc_s");
- }
- } else if target.contains("freebsd") {
-@@ -145,15 +142,6 @@
- cfg.file(root.join("src").join(src));
- }
-
-- if target_env == "musl" {
-- // use the same C compiler command to compile C++ code so we do
not need to setup the
-- // C++ compiler env variables on the builders
-- cfg.cpp(false);
-- // linking for musl is handled in lib.rs
-- cfg.cargo_metadata(false);
-- println!("cargo:rustc-link-search=native={}",
env::var("OUT_DIR").unwrap());
-- }
--
- cfg.compile("unwind");
- }
- }
-diff --git a/src/libunwind/lib.rs b/src/libunwind/lib.rs
-index 18d41be7..17f73d69 100644
---- a/library/unwind/src/lib.rs
-+++ b/library/unwind/src/lib.rs
-@@ -19,7 +19,7 @@ cfg_if::cfg_if! {
- }
-
- #[cfg(target_env = "musl")]
--#[link(name = "unwind", kind = "static", cfg(target_feature =
"crt-static"))]
-+#[link(name = "gcc_eh", cfg(target_feature = "crt-static"))]
- #[link(name = "gcc_s", cfg(not(target_feature = "crt-static")))]
- extern "C" {}
-
---
-2.26.2
-
diff --git
a/devel/rust/patches/0005-Revert-Include-libunwind-in-the-rust-src-component.patch

b/devel/rust/patches/0005-Revert-Include-libunwind-in-the-rust-src-component.patch
new file mode 100644
index 0000000..2e9943b
--- /dev/null
+++
b/devel/rust/patches/0005-Revert-Include-libunwind-in-the-rust-src-component.patch
@@ -0,0 +1,28 @@
+From f45773be74fc47e1be223b3821adeb71127496a1 Mon Sep 17 00:00:00 2001
+From: Johannes Brechtmann <johannes.brechtmann AT gmail.com>
+Date: Sun, 22 Nov 2020 16:00:50 +0100
+Subject: [PATCH 05/10] Revert "Include libunwind in the rust-src component."
+
+This reverts commit 9f27f3796d3487411ab035803a0757d69040649c.
+
+Signed-off-by: Ismael Luceno <ismael AT iodev.co.uk>
+---
+ src/bootstrap/dist.rs | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs
+index a72aa7282851..193238eec3f7 100644
+--- a/src/bootstrap/dist.rs
++++ b/src/bootstrap/dist.rs
+@@ -1028,7 +1028,7 @@ impl Step for Src {
+ copy_src_dirs(
+ builder,
+ &builder.src,
+- &["library", "src/llvm-project/libunwind"],
++ &["library"],
+ &[
+ // not needed and contains symlinks which rustup currently
+ // chokes on when unpacking.
+--
+2.30.0
+
diff --git a/devel/rust/patches/0006-Link-with-ssp_nonshared.patch
b/devel/rust/patches/0006-Link-with-ssp_nonshared.patch
new file mode 100644
index 0000000..c626a0d
--- /dev/null
+++ b/devel/rust/patches/0006-Link-with-ssp_nonshared.patch
@@ -0,0 +1,61 @@
+From 7002d81e5e161c4d43301ebfb1d535a7a5685587 Mon Sep 17 00:00:00 2001
+From: Ismael Luceno <ismael AT iodev.co.uk>
+Date: Thu, 7 Jan 2021 00:35:32 +0100
+Subject: [PATCH 06/10] Link with ssp_nonshared
+
+Signed-off-by: Ismael Luceno <ismael AT iodev.co.uk>
+---
+ library/std/build.rs | 2 ++
+ library/unwind/build.rs | 3 +++
+ vendor/libc/src/unix/mod.rs | 6 +++---
+ 3 files changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/library/std/build.rs b/library/std/build.rs
+index f2ed7552afb2..11e3ca242a81 100644
+--- a/library/std/build.rs
++++ b/library/std/build.rs
+@@ -8,6 +8,8 @@ fn main() {
+ println!("cargo:rustc-link-lib=dl");
+ println!("cargo:rustc-link-lib=log");
+ println!("cargo:rustc-link-lib=gcc");
++ } else if target.contains("musl") {
++ println!("cargo:rustc-link-lib=ssp_nonshared");
+ }
+ } else if target.contains("freebsd") {
+ println!("cargo:rustc-link-lib=execinfo");
+diff --git a/library/unwind/build.rs b/library/unwind/build.rs
+index 3196435865df..ba47a77bee15 100644
+--- a/library/unwind/build.rs
++++ b/library/unwind/build.rs
+@@ -15,6 +15,9 @@ fn main() {
+ // linking for Linux is handled in lib.rs
+ if target.contains("musl") {
+ println!("cargo:rustc-link-lib=gcc_s");
++ if target.contains("musl") {
++ println!("cargo:rustc-link-lib=ssp_nonshared");
++ }
+ }
+ } else if target.contains("freebsd") {
+ println!("cargo:rustc-link-lib=gcc_s");
+diff --git a/vendor/libc/src/unix/mod.rs b/vendor/libc/src/unix/mod.rs
+index 21439c8a49fc..69b048a2e640 100644
+--- a/vendor/libc/src/unix/mod.rs
++++ b/vendor/libc/src/unix/mod.rs
+@@ -325,11 +325,11 @@ cfg_if! {
+ #[link(name = "c", cfg(not(target_feature = "crt-static")))]
+ extern {}
+ } else if #[cfg(target_env = "musl")] {
++ #[link(name = "c")]
++ extern {}
+ #[cfg_attr(feature = "rustc-dep-of-std",
+- link(name = "c", kind = "static",
++ link(name = "gcc", kind = "static-nobundle",
+ cfg(target_feature = "crt-static")))]
+- #[cfg_attr(feature = "rustc-dep-of-std",
+- link(name = "c", cfg(not(target_feature =
"crt-static"))))]
+ extern {}
+ } else if #[cfg(target_os = "emscripten")] {
+ #[link(name = "c")]
+--
+2.30.0
+
diff --git
a/devel/rust/patches/0007-Link-stage2-tools-dynamically-to-libstd.patch
b/devel/rust/patches/0007-Link-stage2-tools-dynamically-to-libstd.patch
new file mode 100644
index 0000000..85b06e1
--- /dev/null
+++ b/devel/rust/patches/0007-Link-stage2-tools-dynamically-to-libstd.patch
@@ -0,0 +1,33 @@
+From 92e56e048bbb925ea3e8fde2e17b9fb10a961bb2 Mon Sep 17 00:00:00 2001
+From: q66 <daniel AT octaforge.org>
+Date: Sun, 3 May 2020 18:00:09 +0200
+Subject: [PATCH 07/10] Link stage2 tools dynamically to libstd
+
+Replaces an older patch by Samuel Holland. The RUSTC_NO_PREFER_DYNAMIC
+env var was removed and replaced with the following logic in builder.rs.
+
+The idea for this patch is to link stage2 tools dynamically as these will
+be distributed (if built). Intermediate tools from previous stages will
+be statically linked for convenience.
+
+Signed-off-by: Ismael Luceno <ismael AT iodev.co.uk>
+---
+ src/bootstrap/builder.rs | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs
+index 3d724c148422..1dd53d5fa696 100644
+--- a/src/bootstrap/builder.rs
++++ b/src/bootstrap/builder.rs
+@@ -1404,6 +1404,8 @@ impl<'a> Builder<'a> {
+ // linking all deps statically into the dylib.
+ if matches!(mode, Mode::Std | Mode::Rustc) {
+ rustflags.arg("-Cprefer-dynamic");
++ } else if stage >= 2 {
++ rustflags.arg("-Cprefer-dynamic");
+ }
+
+ // When building incrementally we default to a lower ThinLTO import
limit
+--
+2.30.0
+
diff --git
a/devel/rust/patches/0008-Move-debugger-scripts-to-usr-share-rust.patch
b/devel/rust/patches/0008-Move-debugger-scripts-to-usr-share-rust.patch
new file mode 100644
index 0000000..d41f58d
--- /dev/null
+++ b/devel/rust/patches/0008-Move-debugger-scripts-to-usr-share-rust.patch
@@ -0,0 +1,40 @@
+From b3b5d84f680f4217fc5586d5bbe270aab3377483 Mon Sep 17 00:00:00 2001
+From: Samuel Holland <samuel AT sholland.org>
+Date: Mon, 17 Sep 2018 02:09:10 +0000
+Subject: [PATCH 08/10] Move debugger scripts to /usr/share/rust
+
+Signed-off-by: Ismael Luceno <ismael AT iodev.co.uk>
+---
+ src/bootstrap/dist.rs | 2 +-
+ src/etc/rust-gdb | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs
+index 193238eec3f7..f6b537c117dc 100644
+--- a/src/bootstrap/dist.rs
++++ b/src/bootstrap/dist.rs
+@@ -610,7 +610,7 @@ impl Step for DebuggerScripts {
+ 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 b950cea79edf..559bfe3f1f92 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
+--
+2.30.0
+
diff --git
a/devel/rust/patches/0009-Dynamically-link-libc-on-musl-by-default.patch
b/devel/rust/patches/0009-Dynamically-link-libc-on-musl-by-default.patch
new file mode 100644
index 0000000..1e84af7
--- /dev/null
+++ b/devel/rust/patches/0009-Dynamically-link-libc-on-musl-by-default.patch
@@ -0,0 +1,32 @@
+From 62f108fec44b12e66d2bd7f9aa980f49f9936f8f Mon Sep 17 00:00:00 2001
+From: q66 <daniel AT octaforge.org>
+Date: Sat, 21 Dec 2019 17:04:13 +0100
+Subject: [PATCH 09/10] Dynamically link libc on musl by default
+
+Signed-off-by: Ismael Luceno <ismael AT iodev.co.uk>
+---
+ compiler/rustc_target/src/spec/linux_musl_base.rs | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/compiler/rustc_target/src/spec/linux_musl_base.rs
b/compiler/rustc_target/src/spec/linux_musl_base.rs
+index bc432445bea7..e2b00dd28062 100644
+--- a/compiler/rustc_target/src/spec/linux_musl_base.rs
++++ b/compiler/rustc_target/src/spec/linux_musl_base.rs
+@@ -1,4 +1,3 @@
+-use crate::spec::crt_objects::{self, CrtObjectsFallback};
+ use crate::spec::TargetOptions;
+
+ pub fn opts() -> TargetOptions {
+@@ -6,8 +5,7 @@ pub fn opts() -> TargetOptions {
+
+ base.env = "musl".to_string();
+
+- // These targets statically link libc by default
+- base.crt_static_default = true;
++ base.crt_static_default = false;
+
+ base
+ }
+--
+2.30.0
+
diff --git
a/devel/rust/patches/0009-Link-stage2-tools-dynamically-to-libstd.patch
b/devel/rust/patches/0009-Link-stage2-tools-dynamically-to-libstd.patch
deleted file mode 100644
index 40f896b..0000000
--- a/devel/rust/patches/0009-Link-stage2-tools-dynamically-to-libstd.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From f5dad49f112151bb0ee74570e971bd475cbec128 Mon Sep 17 00:00:00 2001
-From: q66 <daniel AT octaforge.org>
-Date: Sun, 3 May 2020 18:00:09 +0200
-Subject: [PATCH 09/15] Link stage2 tools dynamically to libstd
-
-Replaces an older patch by Samuel Holland. The RUSTC_NO_PREFER_DYNAMIC
-env var was removed and replaced with the following logic in builder.rs.
-
-The idea for this patch is to link stage2 tools dynamically as these will
-be distributed (if built). Intermediate tools from previous stages will
-be statically linked for convenience.
----
- src/bootstrap/builder.rs | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs
-index eb0199fd..0ec7cbd8 100644
---- a/src/bootstrap/builder.rs
-+++ b/src/bootstrap/builder.rs
-@@ -1236,6 +1236,8 @@ impl<'a> Builder<'a> {
- // linking all deps statically into the dylib.
- if let Mode::Std | Mode::Rustc | Mode::Codegen = mode {
- rustflags.arg("-Cprefer-dynamic");
-+ } else if stage >= 2 {
-+ rustflags.arg("-Cprefer-dynamic");
- }
-
- // When building incrementally we default to a lower ThinLTO import
limit
---
-2.26.2
-
diff --git
a/devel/rust/patches/0010-Move-debugger-scripts-to-usr-share-rust.patch
b/devel/rust/patches/0010-Move-debugger-scripts-to-usr-share-rust.patch
deleted file mode 100644
index c9f5132..0000000
--- a/devel/rust/patches/0010-Move-debugger-scripts-to-usr-share-rust.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 9b0c14783127e195d7bd54ca2c0c498a46714964 Mon Sep 17 00:00:00 2001
-From: Samuel Holland <samuel AT sholland.org>
-Date: Mon, 17 Sep 2018 02:09:10 +0000
-Subject: [PATCH 10/15] Move debugger scripts to /usr/share/rust
-
----
- src/bootstrap/dist.rs | 2 +-
- src/etc/rust-gdb | 2 +-
- src/etc/rust-lldb | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs
-index 8215211e..05a173b4 100644
---- a/src/bootstrap/dist.rs
-+++ b/src/bootstrap/dist.rs
-@@ -603,7 +603,7 @@ impl Step for DebuggerScripts {
- 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 23ba93da..dc51b16c 100755
---- a/src/etc/rust-gdb
-+++ b/src/etc/rust-gdb
-@@ -12,7 +12,7 @@
-
- # 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/devel/rust/patches/0011-Dynamically-link-libc-on-musl-by-default.patch
b/devel/rust/patches/0011-Dynamically-link-libc-on-musl-by-default.patch
deleted file mode 100644
index 7f6ca13..0000000
--- a/devel/rust/patches/0011-Dynamically-link-libc-on-musl-by-default.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From d72ad9c226b4ed225c23d88ec5dbe6ba321b37ad Mon Sep 17 00:00:00 2001
-From: q66 <daniel AT octaforge.org>
-Date: Sat, 21 Dec 2019 17:04:13 +0100
-Subject: [PATCH 11/15] Dynamically link libc on musl by default
-
----
- src/librustc_target/spec/linux_musl_base.rs | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/src/librustc_target/spec/linux_musl_base.rs
b/src/librustc_target/spec/linux_musl_base.rs
-index 58ae91a9..1fae72d6 100644
---- a/compiler/rustc_target/src/spec/linux_musl_base.rs
-+++ b/compiler/rustc_target/src/spec/linux_musl_base.rs
-@@ -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;
-+ base.crt_static_default = false;
- // These targets allow the user to choose between static and dynamic
linking.
- base.crt_static_respected = true;
-
diff --git
a/devel/rust/patches/0012-Fix-dynamic-linkage-of-musl-libc-for-the-libc-crate.patch

b/devel/rust/patches/0012-Fix-dynamic-linkage-of-musl-libc-for-the-libc-crate.patch
deleted file mode 100644
index e4d4f14..0000000
---
a/devel/rust/patches/0012-Fix-dynamic-linkage-of-musl-libc-for-the-libc-crate.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From e363a0e0ff7ffc8bd83f72ec1a20d289996b6370 Mon Sep 17 00:00:00 2001
-From: q66 <daniel AT octaforge.org>
-Date: Sun, 3 May 2020 18:02:03 +0200
-Subject: [PATCH 12/15] Fix dynamic linkage of musl libc for the libc crate
-
----
- vendor/libc/src/lib.rs | 1 +
- vendor/libc/src/unix/mod.rs | 6 +++---
- 2 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/vendor/libc/src/lib.rs b/vendor/libc/src/lib.rs
-index 0b1496af..7f7e85a7 100644
---- a/vendor/libc/src/lib.rs
-+++ b/vendor/libc/src/lib.rs
-@@ -33,6 +33,7 @@
- #![deny(missing_copy_implementations, safe_packed_borrows)]
- #![no_std]
- #![cfg_attr(feature = "rustc-dep-of-std", no_core)]
-+#![cfg_attr(feature = "rustc-dep-of-std", feature(static_nobundle))]
- #![cfg_attr(target_os = "redox", feature(static_nobundle))]
- #![cfg_attr(libc_const_extern_fn, feature(const_extern_fn))]
-
-diff --git a/vendor/libc/src/unix/mod.rs b/vendor/libc/src/unix/mod.rs
-index 238da24b..ffb05ee7 100644
---- a/vendor/libc/src/unix/mod.rs
-+++ b/vendor/libc/src/unix/mod.rs
-@@ -299,11 +299,11 @@ cfg_if! {
- // cargo build, don't pull in anything extra as the libstd dep
- // already pulls in all libs.
- } else if #[cfg(target_env = "musl")] {
-+ #[link(name = "c")]
-+ extern {}
- #[cfg_attr(feature = "rustc-dep-of-std",
-- link(name = "c", kind = "static",
-+ link(name = "gcc", kind = "static-nobundle",
- cfg(target_feature = "crt-static")))]
-- #[cfg_attr(feature = "rustc-dep-of-std",
-- link(name = "c", cfg(not(target_feature =
"crt-static"))))]
- extern {}
- } else if #[cfg(target_os = "emscripten")] {
- #[link(name = "c")]
-index 0b1496af..7f7e85a7 100644
---
-2.26.2
-
diff --git a/devel/rust/patches/need-ssp_nonshared.patch
b/devel/rust/patches/need-ssp_nonshared.patch
deleted file mode 100644
index 44c6dc2..0000000
--- a/devel/rust/patches/need-ssp_nonshared.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- rustc-1.47.0-src/library/std/build.rs.orig
-+++ rustc-1.47.0-src/library/std/build.rs
-@@ -8,6 +8,8 @@
- println!("cargo:rustc-link-lib=dl");
- println!("cargo:rustc-link-lib=log");
- println!("cargo:rustc-link-lib=gcc");
-+ } else if target.contains("musl") {
-+ println!("cargo:rustc-link-lib=ssp_nonshared");
- }
- } else if target.contains("freebsd") {
- println!("cargo:rustc-link-lib=execinfo");
---- rustc-1.44.0-src/library/unwind/build.rs.orig
-+++ rustc-1.44.0-src/library/unwind/build.rs
-@@ -12,6 +12,9 @@ fn main() {
- } else if target.contains("linux") {
- if !target.contains("android") {
- println!("cargo:rustc-link-lib=gcc_s");
-+ if target.contains("musl") {
-+ println!("cargo:rustc-link-lib=ssp_nonshared");
-+ }
- }
- } else if target.contains("freebsd") {
- println!("cargo:rustc-link-lib=gcc_s");



  • [SM-Commit] GIT changes to master grimoire by Ismael Luceno (e51e515fa907554a932d023452925b74eb81c634), Ismael Luceno, 01/07/2021

Archive powered by MHonArc 2.6.24.

Top of Page