aboutsummaryrefslogtreecommitdiffstats
path: root/testing/rust/static-pie.patch
diff options
context:
space:
mode:
authorShiz <hi@shiz.me>2017-04-14 00:30:25 +0000
committerJakub Jirutka <jakub@jirutka.cz>2017-04-14 17:59:37 +0200
commit2ebf583060c9dfe3cf1df21e97e8d8d6e017ac22 (patch)
tree3edebc1af1ee3cbf7eb04ec799e0292b04de77f1 /testing/rust/static-pie.patch
parenta551ebb6babcbfe010095f14618a5ea4e67e9ec5 (diff)
downloadaports-2ebf583060c9dfe3cf1df21e97e8d8d6e017ac22.tar.bz2
aports-2ebf583060c9dfe3cf1df21e97e8d8d6e017ac22.tar.xz
testing/rust: fix dylib creation when crt-static is enabled
Diffstat (limited to 'testing/rust/static-pie.patch')
-rw-r--r--testing/rust/static-pie.patch13
1 files changed, 13 insertions, 0 deletions
diff --git a/testing/rust/static-pie.patch b/testing/rust/static-pie.patch
index 5ae091f691..8ac8a76653 100644
--- a/testing/rust/static-pie.patch
+++ b/testing/rust/static-pie.patch
@@ -215,3 +215,16 @@ library, just like static binaries, but more secure.
}
}
+--- a/src/librustc_trans/back/link.rs
++++ b/src/librustc_trans/back/link.rs
+@@ -239,8 +239,8 @@
+ /// Checks if target supports crate_type as output
+ pub fn invalid_output_for_target(sess: &Session,
+ crate_type: config::CrateType) -> bool {
+- match (sess.target.target.options.dynamic_linking,
+- sess.target.target.options.executables, crate_type) {
++ let dynamic_linking = sess.target.target.options.dynamic_linking && !sess.crt_static();
++ match (dynamic_linking, sess.target.target.options.executables, crate_type) {
+ (false, _, config::CrateTypeCdylib) |
+ (false, _, config::CrateTypeProcMacro) |
+ (false, _, config::CrateTypeDylib) => true,