diff options
author | Jakub Jirutka <jakub@jirutka.cz> | 2017-05-01 00:43:19 +0200 |
---|---|---|
committer | Jakub Jirutka <jakub@jirutka.cz> | 2017-05-01 00:43:19 +0200 |
commit | 41489596392977197d046ca034685664a3f4afa4 (patch) | |
tree | ef791ac83fd7635db59db40e12beb20a66ada3bd /community/rust/alpine-change-rpath-to-rustlib.patch | |
parent | abfa07f26ff2837922903586b15e137b67b43219 (diff) | |
download | aports-41489596392977197d046ca034685664a3f4afa4.tar.bz2 aports-41489596392977197d046ca034685664a3f4afa4.tar.xz |
community/rust: move from testing
Diffstat (limited to 'community/rust/alpine-change-rpath-to-rustlib.patch')
-rw-r--r-- | community/rust/alpine-change-rpath-to-rustlib.patch | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/community/rust/alpine-change-rpath-to-rustlib.patch b/community/rust/alpine-change-rpath-to-rustlib.patch new file mode 100644 index 0000000000..4be0f9d0a6 --- /dev/null +++ b/community/rust/alpine-change-rpath-to-rustlib.patch @@ -0,0 +1,37 @@ +From: Jakub Jirutka <jakub@jirutka.cz> +Date: Sat, 08 Aug 2016 19:56:00 +0200 +Subject: [PATCH] Change rpath for rustc/rustdoc to rustlib/$TARGET/lib + +Rust installs two identical sets of *.so libraries into /usr/lib and +/usr/lib/rustlib/$TARGET/lib. The former comes with the rustc component, +/usr/bin/rustc and /usr/bin/rustdoc are linked against them. The latter +comes with rust-std and are used for binaries dynamically linked against +Rust libraries (usually compiler plugins, like clippy). + +These *.so libraries don't keep stable ABI, so it's better to treat +them as private. Such libraries should not be exposed at standard paths +like /usr/lib, but use rpath. + +This patch changes rpath for binaries of the rustc component to +`$ORIGIN/../lib/rustlib/$TARGET/lib`. Duplicate libraries will be still +installed into /usr/lib, but we can simply remove them when packaging. + +Related upstream issues: + +* https://github.com/rust-lang/rust/issues/37971 +* https://github.com/rust-lang-nursery/rustup.rs/issues/837 + +--- a/src/bootstrap/bin/rustc.rs ++++ b/src/bootstrap/bin/rustc.rs +@@ -189,9 +189,9 @@ + if stage != "0" { + cmd.arg("-Z").arg("osx-rpath-install-name"); + } +- Some("-Wl,-rpath,@loader_path/../lib") ++ Some("-Wl,-rpath,@loader_path/../lib".to_string()) + } else if !target.contains("windows") { +- Some("-Wl,-rpath,$ORIGIN/../lib") ++ Some(format!("-Wl,-rpath,$ORIGIN/../lib/rustlib/{}/lib", target)) + } else { + None + }; |