diff options
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.patch | 394 |
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 - |