diff options
Diffstat (limited to 'testing/rust/static-pie.patch')
-rw-r--r-- | testing/rust/static-pie.patch | 13 |
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, |