summaryrefslogtreecommitdiff
path: root/user/rust/0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch
diff options
context:
space:
mode:
Diffstat (limited to 'user/rust/0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch')
-rw-r--r--user/rust/0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch394
1 files changed, 0 insertions, 394 deletions
diff --git a/user/rust/0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch b/user/rust/0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch
deleted file mode 100644
index 27556e720..000000000
--- a/user/rust/0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch
+++ /dev/null
@@ -1,394 +0,0 @@
-From 87b08278a8640db921cbd699c7a7dc7e1864f21e Mon Sep 17 00:00:00 2001
-From: Samuel Holland <samuel@sholland.org>
-Date: Fri, 8 Sep 2017 22:11:14 -0500
-Subject: [PATCH 05/18] Remove -nostdlib and musl_root from musl targets
-
----
- config.toml.example | 6 ----
- src/bootstrap/bin/rustc.rs | 10 -------
- src/bootstrap/cc_detect.rs | 27 ++----------------
- src/bootstrap/compile.rs | 21 +-------------
- src/bootstrap/config.rs | 7 -----
- src/bootstrap/configure.py | 24 ----------------
- src/bootstrap/lib.rs | 8 ------
- src/bootstrap/sanity.rs | 28 -------------------
- .../dist-i586-gnu-i586-i686-musl/Dockerfile | 2 --
- src/ci/docker/dist-various-1/Dockerfile | 7 -----
- src/ci/docker/dist-x86_64-musl/Dockerfile | 1 -
- src/ci/docker/test-various/Dockerfile | 1 -
- src/librustc_target/spec/linux_musl_base.rs | 16 -----------
- 13 files changed, 4 insertions(+), 154 deletions(-)
-
-diff --git a/config.toml.example b/config.toml.example
-index cb9f388a8e4..c7d669c91b8 100644
---- a/config.toml.example
-+++ b/config.toml.example
-@@ -474,12 +474,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 root location of the `wasm32-wasi` sysroot.
- #wasi-root = "..."
-
-diff --git a/src/bootstrap/bin/rustc.rs b/src/bootstrap/bin/rustc.rs
-index 54b689fb062..81e7e46df37 100644
---- a/src/bootstrap/bin/rustc.rs
-+++ b/src/bootstrap/bin/rustc.rs
-@@ -164,16 +164,6 @@ fn main() {
- cmd.arg("-Cprefer-dynamic");
- }
-
-- // Help the libc crate compile by assisting it in finding various
-- // sysroot native libraries.
-- if let Some(s) = env::var_os("MUSL_ROOT") {
-- if target.contains("musl") {
-- let mut root = OsString::from("native=");
-- root.push(&s);
-- root.push("/lib");
-- cmd.arg("-L").arg(&root);
-- }
-- }
- if let Some(s) = env::var_os("WASI_ROOT") {
- let mut root = OsString::from("native=");
- root.push(&s);
-diff --git a/src/bootstrap/cc_detect.rs b/src/bootstrap/cc_detect.rs
-index c58a98bac36..3103b29a5b9 100644
---- a/src/bootstrap/cc_detect.rs
-+++ b/src/bootstrap/cc_detect.rs
-@@ -86,7 +86,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();
-@@ -109,7 +109,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
-@@ -136,8 +136,7 @@ pub fn find(build: &mut Build) {
- fn set_compiler(cfg: &mut cc::Build,
- compiler: Language,
- target: Interned<String>,
-- config: Option<&Target>,
-- build: &Build) {
-+ config: Option<&Target>) {
- match &*target {
- // When compiling for android we may have the NDK configured in the
- // config.toml in which case we look there. Otherwise the default
-@@ -177,26 +176,6 @@ fn set_compiler(cfg: &mut cc::Build,
- }
- }
-
-- "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 4cd793adaf5..4839ec9badd 100644
---- a/src/bootstrap/compile.rs
-+++ b/src/bootstrap/compile.rs
-@@ -115,20 +115,7 @@ impl Step for Std {
- fn copy_third_party_objects(builder: &Builder<'_>, compiler: &Compiler, target: Interned<String>) {
- let libdir = builder.sysroot_libdir(*compiler, target);
-
-- // Copies the crt(1,i,n).o startup objects
-- //
-- // Since musl supports fully static linking, we can cross link for it even
-- // with a glibc-targeting toolchain, given we have the appropriate startup
-- // files. As those shipped with glibc won't work, copy the ones provided by
-- // musl so we have them on linux-gnu hosts.
-- if target.contains("musl") {
-- for &obj in &["crt1.o", "crti.o", "crtn.o"] {
-- builder.copy(
-- &builder.musl_root(target).unwrap().join("lib").join(obj),
-- &libdir.join(obj),
-- );
-- }
-- } else if target.ends_with("-wasi") {
-+ if target.ends_with("-wasi") {
- for &obj in &["crt1.o"] {
- builder.copy(
- &builder.wasi_root(target).unwrap().join("lib/wasm32-wasi").join(obj),
-@@ -218,12 +205,6 @@ pub fn std_cargo(builder: &Builder<'_>,
- .arg("--manifest-path")
- .arg(builder.src.join("src/libstd/Cargo.toml"));
-
-- if target.contains("musl") {
-- if let Some(p) = builder.musl_root(target) {
-- cargo.env("MUSL_ROOT", p);
-- }
-- }
--
- if target.ends_with("-wasi") {
- if let Some(p) = builder.wasi_root(target) {
- cargo.env("WASI_ROOT", p);
-diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs
-index a5bfafdfdb4..cc0b489870b 100644
---- a/src/bootstrap/config.rs
-+++ b/src/bootstrap/config.rs
-@@ -132,8 +132,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>,
-@@ -168,7 +166,6 @@ pub struct Target {
- pub linker: Option<PathBuf>,
- pub ndk: Option<PathBuf>,
- pub crt_static: Option<bool>,
-- pub musl_root: Option<PathBuf>,
- pub wasi_root: Option<PathBuf>,
- pub qemu_rootfs: Option<PathBuf>,
- pub no_std: bool,
-@@ -306,7 +303,6 @@ struct Rust {
- backtrace: Option<bool>,
- default_linker: Option<String>,
- channel: Option<String>,
-- musl_root: Option<String>,
- rpath: Option<bool>,
- optimize_tests: Option<bool>,
- codegen_tests: Option<bool>,
-@@ -344,7 +340,6 @@ struct TomlTarget {
- linker: Option<String>,
- android_ndk: Option<String>,
- crt_static: Option<bool>,
-- musl_root: Option<String>,
- wasi_root: Option<String>,
- qemu_rootfs: Option<String>,
- }
-@@ -564,7 +559,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.clone();
-- config.musl_root = rust.musl_root.clone().map(PathBuf::from);
- config.save_toolstates = rust.save_toolstates.clone().map(PathBuf::from);
- set(&mut config.deny_warnings, flags.deny_warnings.or(rust.deny_warnings));
- set(&mut config.backtrace_on_ice, rust.backtrace_on_ice);
-@@ -602,7 +596,6 @@ impl Config {
- target.ranlib = cfg.ranlib.clone().map(PathBuf::from);
- target.linker = cfg.linker.clone().map(PathBuf::from);
- target.crt_static = cfg.crt_static.clone();
-- target.musl_root = cfg.musl_root.clone().map(PathBuf::from);
- target.wasi_root = cfg.wasi_root.clone().map(PathBuf::from);
- target.qemu_rootfs = cfg.qemu_rootfs.clone().map(PathBuf::from);
-
-diff --git a/src/bootstrap/configure.py b/src/bootstrap/configure.py
-index 346f0cb2039..80409781ede 100755
---- a/src/bootstrap/configure.py
-+++ b/src/bootstrap/configure.py
-@@ -110,30 +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("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 3374c88550a..76cc0dd28a5 100644
---- a/src/bootstrap/lib.rs
-+++ b/src/bootstrap/lib.rs
-@@ -846,14 +846,6 @@ impl Build {
- }
- }
-
-- /// Returns the "musl root" for this `target`, if defined
-- fn musl_root(&self, target: Interned<String>) -> Option<&Path> {
-- self.config.target_config.get(&target)
-- .and_then(|t| t.musl_root.as_ref())
-- .or(self.config.musl_root.as_ref())
-- .map(|p| &**p)
-- }
--
- /// Returns the sysroot for the wasi target, if defined
- fn wasi_root(&self, target: Interned<String>) -> Option<&Path> {
- self.config.target_config.get(&target)
-diff --git a/src/bootstrap/sanity.rs b/src/bootstrap/sanity.rs
-index 4e3930c8da7..3b109548056 100644
---- a/src/bootstrap/sanity.rs
-+++ b/src/bootstrap/sanity.rs
-@@ -187,34 +187,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_root(*target) {
-- Some(root) => {
-- if fs::metadata(root.join("lib/libc.a")).is_err() {
-- panic!("couldn't find libc.a in musl dir: {}",
-- root.join("lib").display());
-- }
-- if fs::metadata(root.join("lib/libunwind.a")).is_err() {
-- panic!("couldn't find libunwind.a in musl dir: {}",
-- root.join("lib").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/ci/docker/dist-i586-gnu-i586-i686-musl/Dockerfile b/src/ci/docker/dist-i586-gnu-i586-i686-musl/Dockerfile
-index ba2d32a9296..412c37fdd12 100644
---- a/src/ci/docker/dist-i586-gnu-i586-i686-musl/Dockerfile
-+++ b/src/ci/docker/dist-i586-gnu-i586-i686-musl/Dockerfile
-@@ -30,8 +30,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 \
- --enable-extended \
- --disable-docs
-
-diff --git a/src/ci/docker/dist-various-1/Dockerfile b/src/ci/docker/dist-various-1/Dockerfile
-index ae2ea8ef95a..19426156d1f 100644
---- a/src/ci/docker/dist-various-1/Dockerfile
-+++ b/src/ci/docker/dist-various-1/Dockerfile
-@@ -134,13 +134,6 @@ ENV CC_mipsel_unknown_linux_musl=mipsel-openwrt-linux-gcc \
- CXX_thumbv7neon_unknown_linux_gnueabihf=arm-linux-gnueabihf-g++
-
- 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-aarch64=/musl-aarch64 \
-- --musl-root-mips=/musl-mips \
-- --musl-root-mipsel=/musl-mipsel \
- --enable-emscripten \
- --disable-docs
-
-diff --git a/src/ci/docker/dist-x86_64-musl/Dockerfile b/src/ci/docker/dist-x86_64-musl/Dockerfile
-index 385eefde846..81d4f7737e8 100644
---- a/src/ci/docker/dist-x86_64-musl/Dockerfile
-+++ b/src/ci/docker/dist-x86_64-musl/Dockerfile
-@@ -31,7 +31,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 \
- --disable-docs \
- --set target.x86_64-unknown-linux-musl.crt-static=false \
-diff --git a/src/ci/docker/test-various/Dockerfile b/src/ci/docker/test-various/Dockerfile
-index 6a2600d8756..53a99ae1353 100644
---- a/src/ci/docker/test-various/Dockerfile
-+++ b/src/ci/docker/test-various/Dockerfile
-@@ -29,7 +29,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-v9.2.0-linux-x64/bin/node \
- --set rust.lld
-
-diff --git a/src/librustc_target/spec/linux_musl_base.rs b/src/librustc_target/spec/linux_musl_base.rs
-index e294e63982d..58ae91a96aa 100644
---- a/src/librustc_target/spec/linux_musl_base.rs
-+++ b/src/librustc_target/spec/linux_musl_base.rs
-@@ -3,28 +3,12 @@ use crate::spec::{LinkerFlavor, TargetOptions};
- pub fn opts() -> TargetOptions {
- let mut base = super::linux_base::opts();
-
-- // Make sure that the linker/gcc really don't pull in anything, including
-- // default objects, libs, etc.
-- base.pre_link_args_crt.insert(LinkerFlavor::Gcc, Vec::new());
-- base.pre_link_args_crt.get_mut(&LinkerFlavor::Gcc).unwrap().push("-nostdlib".to_string());
--
- // At least when this was tested, the linker would not add the
- // `GNU_EH_FRAME` program header to executables generated, which is required
- // when unwinding to locate the unwinding information. I'm not sure why this
- // argument is *not* necessary for normal builds, but it can't hurt!
- base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-Wl,--eh-frame-hdr".to_string());
-
-- // When generating a statically linked executable there's generally some
-- // small setup needed which is listed in these files. These are provided by
-- // a musl toolchain and are linked by default by the `musl-gcc` script. Note
-- // that `gcc` also does this by default, it just uses some different files.
-- //
-- // Each target directory for musl has these object files included in it so
-- // they'll be included from there.
-- base.pre_link_objects_exe_crt.push("crt1.o".to_string());
-- base.pre_link_objects_exe_crt.push("crti.o".to_string());
-- base.post_link_objects_crt.push("crtn.o".to_string());
--
- // These targets statically link libc by default
- base.crt_static_default = true;
- // These targets allow the user to choose between static and dynamic linking.
---
-2.21.0
-