summaryrefslogtreecommitdiffstats
path: root/debian/patches/d-bootstrap-rustflags.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/d-bootstrap-rustflags.patch')
-rw-r--r--debian/patches/d-bootstrap-rustflags.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/debian/patches/d-bootstrap-rustflags.patch b/debian/patches/d-bootstrap-rustflags.patch
new file mode 100644
index 000000000..a28810e89
--- /dev/null
+++ b/debian/patches/d-bootstrap-rustflags.patch
@@ -0,0 +1,32 @@
+From: Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
+Date: Thu, 14 Jul 2022 13:17:38 +0200
+Subject: d-bootstrap-rustflags
+
+===================================================================
+---
+ src/bootstrap/builder.rs | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs
+index 23ea2fe..b2b1c54 100644
+--- a/src/bootstrap/builder.rs
++++ b/src/bootstrap/builder.rs
+@@ -1505,6 +1505,18 @@ impl<'a> Builder<'a> {
+ }
+ }
+
++ // Debian-specific stuff here
++ // set linker flags from LDFLAGS
++ if let Ok(ldflags) = env::var("LDFLAGS") {
++ for flag in ldflags.split_whitespace() {
++ if target.contains("windows") && flag.contains("relro") {
++ // relro is ELF-specific
++ continue;
++ }
++ rustflags.arg(&format!("-Clink-args={}", flag));
++ }
++ }
++
+ // FIXME: It might be better to use the same value for both `RUSTFLAGS` and `RUSTDOCFLAGS`,
+ // but this breaks CI. At the very least, stage0 `rustdoc` needs `--cfg bootstrap`. See
+ // #71458.