Skip to content

Commit 9a9d6ee

Browse files
committed
x86: rust: move unknown-to-rustc codegen features back to the target spec file
Similar to c5eae3a ("x86: rust: move unknown-to-`rustc` codegen features back to the target spec file"), but for `retpoline-external-thunk`: Only a subset of the LLVM codegen features are recognized by `rustc`, and since rust-lang/rust#87402 (Rust 1.61.0) the compiler gives a warning about it: warning: unknown feature specified for `-Ctarget-feature`: `mmx` | = note: it is still passed through to the codegen backend = note: consider filing a feature request ...since those features may be renamed or removed at any point: $ rustc --print target-features [...] Code-generation features cannot be used in cfg or #[target_feature], and may be renamed or removed in a future version of LLVM or rustc. Thus move them back to the target spec generated file. See rust-lang/rust#96472 as well for a report. Signed-off-by: Miguel Ojeda <[email protected]>
1 parent 61104a0 commit 9a9d6ee

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

arch/x86/Makefile

-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ ifdef CONFIG_CC_IS_CLANG
2121
RETPOLINE_CFLAGS := -mretpoline-external-thunk
2222
RETPOLINE_VDSO_CFLAGS := -mretpoline
2323
endif
24-
RETPOLINE_RUSTFLAGS := -Ctarget-feature=+retpoline-external-thunk
2524

2625
ifdef CONFIG_RETHUNK
2726
RETHUNK_CFLAGS := -mfunction-return=thunk-extern
@@ -203,7 +202,6 @@ ifdef CONFIG_RETPOLINE
203202
ifndef CONFIG_CC_IS_CLANG
204203
KBUILD_CFLAGS += -fno-jump-tables
205204
endif
206-
KBUILD_RUSTFLAGS += $(RETPOLINE_RUSTFLAGS)
207205
endif
208206

209207
ifdef CONFIG_SLS

scripts/generate_rust_target.rs

+5-1
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,11 @@ fn main() {
204204
"data-layout",
205205
"e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128",
206206
);
207-
ts.push("features", "-3dnow,-3dnowa,-mmx,+soft-float");
207+
let mut features = "-3dnow,-3dnowa,-mmx,+soft-float".to_string();
208+
if cfg.has("RETPOLINE") {
209+
features += ",+retpoline-external-thunk";
210+
}
211+
ts.push("features", features);
208212
ts.push("llvm-target", "x86_64-linux-gnu");
209213
ts.push("target-pointer-width", "64");
210214
} else {

0 commit comments

Comments
 (0)