add end-to-end test of custom target using rust-lld
starting from the x86_64-unknown-linux-gnu specs, we add the lld linker flavor and self-contained linker component
This commit is contained in:
parent
5f24e314ef
commit
fe7a843278
7
tests/run-make/rust-lld-custom-target/Makefile
Normal file
7
tests/run-make/rust-lld-custom-target/Makefile
Normal file
@ -0,0 +1,7 @@
|
||||
include ../tools.mk
|
||||
|
||||
# needs-rust-lld
|
||||
# only-x86_64-unknown-linux-gnu
|
||||
all:
|
||||
RUSTC_LOG=rustc_codegen_ssa::back::link=info $(RUSTC) --crate-type cdylib --target custom-target.json -Clink-args=-Wl,-v lib.rs 2> $(TMPDIR)/output.txt
|
||||
$(CGREP) -e "^LLD [0-9]+\.[0-9]+\.[0-9]+" < $(TMPDIR)/output.txt
|
57
tests/run-make/rust-lld-custom-target/custom-target.json
Normal file
57
tests/run-make/rust-lld-custom-target/custom-target.json
Normal file
@ -0,0 +1,57 @@
|
||||
{
|
||||
"arch": "x86_64",
|
||||
"cpu": "x86-64",
|
||||
"crt-static-respected": true,
|
||||
"data-layout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128",
|
||||
"dynamic-linking": true,
|
||||
"env": "gnu",
|
||||
"has-rpath": true,
|
||||
"has-thread-local": true,
|
||||
"link-self-contained": {
|
||||
"components": [
|
||||
"linker"
|
||||
]
|
||||
},
|
||||
"linker-flavor": "gnu-lld-cc",
|
||||
"llvm-target": "x86_64-unknown-linux-gnu",
|
||||
"max-atomic-width": 64,
|
||||
"os": "linux",
|
||||
"plt-by-default": false,
|
||||
"position-independent-executables": true,
|
||||
"pre-link-args": {
|
||||
"gnu-cc": [
|
||||
"-m64"
|
||||
],
|
||||
"gnu-lld-cc": [
|
||||
"-m64"
|
||||
]
|
||||
},
|
||||
"relro-level": "full",
|
||||
"stack-probes": {
|
||||
"kind": "inline-or-call",
|
||||
"min-llvm-version-for-inline": [
|
||||
16,
|
||||
0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"static-position-independent-executables": true,
|
||||
"supported-sanitizers": [
|
||||
"address",
|
||||
"cfi",
|
||||
"leak",
|
||||
"memory",
|
||||
"thread",
|
||||
"safestack"
|
||||
],
|
||||
"supported-split-debuginfo": [
|
||||
"packed",
|
||||
"unpacked",
|
||||
"off"
|
||||
],
|
||||
"supports-xray": true,
|
||||
"target-family": [
|
||||
"unix"
|
||||
],
|
||||
"target-pointer-width": "64"
|
||||
}
|
9
tests/run-make/rust-lld-custom-target/lib.rs
Normal file
9
tests/run-make/rust-lld-custom-target/lib.rs
Normal file
@ -0,0 +1,9 @@
|
||||
// Test linking using `cc` with `rust-lld`, using a custom target with features described in MCP 510
|
||||
// see https://github.com/rust-lang/compiler-team/issues/510 for more info:
|
||||
//
|
||||
// Starting from the `x86_64-unknown-linux-gnu` target spec, we add the following options:
|
||||
// - a linker-flavor using lld via a C compiler
|
||||
// - the self-contained linker component is enabled
|
||||
|
||||
#![feature(no_core)]
|
||||
#![no_core]
|
Loading…
Reference in New Issue
Block a user