Skip to content

Commit b1a3090

Browse files
committed
spec: add -dynmusl targets for dynamically linked musl binaries
1 parent cecdb18 commit b1a3090

14 files changed

+171
-0
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
use crate::spec::Target;
2+
3+
pub fn target() -> Target {
4+
let mut base = super::aarch64_unknown_linux_musl::target();
5+
6+
base.llvm_target = "aarch64-unknown-linux-musl".to_string();
7+
base.options.crt_static_default = false;
8+
base.options.static_position_independent_executables = true;
9+
base.options.need_rpath = true;
10+
11+
base
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
use crate::spec::Target;
2+
3+
pub fn target() -> Target {
4+
let mut base = super::arm_unknown_linux_musleabihf::target();
5+
6+
base.llvm_target = "armv6-unknown-linux-musleabihf".to_string();
7+
base.options.crt_static_default = false;
8+
base.options.static_position_independent_executables = true;
9+
base.options.need_rpath = true;
10+
11+
base
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
use crate::spec::Target;
2+
3+
pub fn target() -> Target {
4+
let mut base = super::armv7_unknown_linux_musleabihf::target();
5+
6+
base.llvm_target = "armv7-unknown-linux-musleabihf".to_string();
7+
base.options.crt_static_default = false;
8+
base.options.static_position_independent_executables = true;
9+
base.options.need_rpath = true;
10+
11+
base
12+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
use crate::spec::Target;
2+
3+
pub fn target() -> Target {
4+
let mut base = super::i686_unknown_linux_musl::target();
5+
6+
base.options.cpu = "pentium4".to_string();
7+
base.llvm_target = "i586-unknown-linux-musl".to_string();
8+
base.options.vendor = "alpine".to_string();
9+
base.options.crt_static_default = false;
10+
base.options.static_position_independent_executables = true;
11+
base.options.need_rpath = true;
12+
13+
base
14+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
use crate::spec::Target;
2+
3+
pub fn target() -> Target {
4+
let mut base = super::mips64_unknown_linux_muslabi64::target();
5+
6+
base.llvm_target = "mips64-unknown-linux-musl".to_string();
7+
base.options.crt_static_default = false;
8+
base.options.static_position_independent_executables = true;
9+
base.options.need_rpath = true;
10+
11+
base
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
use crate::spec::Target;
2+
3+
pub fn target() -> Target {
4+
let mut base = super::mips64el_unknown_linux_muslabi64::target();
5+
6+
base.llvm_target = "mips64el-unknown-linux-musl".to_string();
7+
base.options.crt_static_default = false;
8+
base.options.static_position_independent_executables = true;
9+
base.options.need_rpath = true;
10+
11+
base
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
use crate::spec::Target;
2+
3+
pub fn target() -> Target {
4+
let mut base = super::mips_unknown_linux_musl::target();
5+
6+
base.llvm_target = "mips-unknown-linux-musl".to_string();
7+
base.options.crt_static_default = false;
8+
base.options.static_position_independent_executables = true;
9+
base.options.need_rpath = true;
10+
11+
base
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
use crate::spec::Target;
2+
3+
pub fn target() -> Target {
4+
let mut base = super::mipsel_unknown_linux_musl::target();
5+
6+
base.llvm_target = "mipsel-unknown-linux-musl".to_string();
7+
base.options.crt_static_default = false;
8+
base.options.static_position_independent_executables = true;
9+
base.options.need_rpath = true;
10+
11+
base
12+
}

compiler/rustc_target/src/spec/mod.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -626,22 +626,28 @@ supported_targets! {
626626
("i686-unknown-linux-gnu", i686_unknown_linux_gnu),
627627
("i586-unknown-linux-gnu", i586_unknown_linux_gnu),
628628
("mips-unknown-linux-gnu", mips_unknown_linux_gnu),
629+
("mips-unknown-linux-dynmusl", mips_unknown_linux_dynmusl),
629630
("mips64-unknown-linux-gnuabi64", mips64_unknown_linux_gnuabi64),
630631
("mips64el-unknown-linux-gnuabi64", mips64el_unknown_linux_gnuabi64),
631632
("mipsisa32r6-unknown-linux-gnu", mipsisa32r6_unknown_linux_gnu),
632633
("mipsisa32r6el-unknown-linux-gnu", mipsisa32r6el_unknown_linux_gnu),
633634
("mipsisa64r6-unknown-linux-gnuabi64", mipsisa64r6_unknown_linux_gnuabi64),
634635
("mipsisa64r6el-unknown-linux-gnuabi64", mipsisa64r6el_unknown_linux_gnuabi64),
635636
("mipsel-unknown-linux-gnu", mipsel_unknown_linux_gnu),
637+
("mipsel-unknown-linux-dynmusl", mipsel_unknown_linux_dynmusl),
636638
("powerpc-unknown-linux-gnu", powerpc_unknown_linux_gnu),
637639
("powerpc-unknown-linux-gnuspe", powerpc_unknown_linux_gnuspe),
638640
("powerpc-unknown-linux-musl", powerpc_unknown_linux_musl),
641+
("powerpc-unknown-linux-dynmusl", powerpc_unknown_linux_dynmusl),
639642
("powerpc64-unknown-linux-gnu", powerpc64_unknown_linux_gnu),
640643
("powerpc64-unknown-linux-musl", powerpc64_unknown_linux_musl),
644+
("powerpc64-unknown-linux-dynmusl", powerpc64_unknown_linux_dynmusl),
641645
("powerpc64le-unknown-linux-gnu", powerpc64le_unknown_linux_gnu),
642646
("powerpc64le-unknown-linux-musl", powerpc64le_unknown_linux_musl),
647+
("powerpc64le-unknown-linux-dynmusl", powerpc64le_unknown_linux_dynmusl),
643648
("s390x-unknown-linux-gnu", s390x_unknown_linux_gnu),
644649
("s390x-unknown-linux-musl", s390x_unknown_linux_musl),
650+
("s390x-unknown-linux-dynmusl", s390x_unknown_linux_dynmusl),
645651
("sparc-unknown-linux-gnu", sparc_unknown_linux_gnu),
646652
("sparc64-unknown-linux-gnu", sparc64_unknown_linux_gnu),
647653
("arm-unknown-linux-gnueabi", arm_unknown_linux_gnueabi),
@@ -656,17 +662,24 @@ supported_targets! {
656662
("armv7-unknown-linux-gnueabihf", armv7_unknown_linux_gnueabihf),
657663
("thumbv7neon-unknown-linux-gnueabihf", thumbv7neon_unknown_linux_gnueabihf),
658664
("thumbv7neon-unknown-linux-musleabihf", thumbv7neon_unknown_linux_musleabihf),
665+
("armv6-unknown-linux-dynmusleabihf", armv6_unknown_linux_dynmusleabihf),
659666
("armv7-unknown-linux-musleabi", armv7_unknown_linux_musleabi),
660667
("armv7-unknown-linux-musleabihf", armv7_unknown_linux_musleabihf),
668+
("armv7-unknown-linux-dynmusleabihf", armv7_unknown_linux_dynmusleabihf),
661669
("aarch64-unknown-linux-gnu", aarch64_unknown_linux_gnu),
662670
("aarch64-unknown-linux-musl", aarch64_unknown_linux_musl),
671+
("aarch64-unknown-linux-dynmusl", aarch64_unknown_linux_dynmusl),
663672
("x86_64-unknown-linux-musl", x86_64_unknown_linux_musl),
673+
("x86_64-unknown-linux-dynmusl", x86_64_unknown_linux_dynmusl),
664674
("i686-unknown-linux-musl", i686_unknown_linux_musl),
665675
("i586-unknown-linux-musl", i586_unknown_linux_musl),
676+
("i586-unknown-linux-dynmusl", i586_unknown_linux_dynmusl),
666677
("mips-unknown-linux-musl", mips_unknown_linux_musl),
667678
("mipsel-unknown-linux-musl", mipsel_unknown_linux_musl),
668679
("mips64-unknown-linux-muslabi64", mips64_unknown_linux_muslabi64),
680+
("mips64-unknown-linux-dynmuslabi64", mips64_unknown_linux_dynmuslabi64),
669681
("mips64el-unknown-linux-muslabi64", mips64el_unknown_linux_muslabi64),
682+
("mips64el-unknown-linux-dynmuslabi64", mips64el_unknown_linux_dynmuslabi64),
670683
("hexagon-unknown-linux-musl", hexagon_unknown_linux_musl),
671684

672685
("mips-unknown-linux-uclibc", mips_unknown_linux_uclibc),
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
use crate::spec::Target;
2+
3+
pub fn target() -> Target {
4+
let mut base = super::powerpc64_unknown_linux_musl::target();
5+
6+
base.llvm_target = "powerpc64-unknown-linux-musl".to_string();
7+
base.options.crt_static_default = false;
8+
base.options.static_position_independent_executables = true;
9+
base.options.need_rpath = true;
10+
11+
base
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
use crate::spec::Target;
2+
3+
pub fn target() -> Target {
4+
let mut base = super::powerpc64le_unknown_linux_musl::target();
5+
6+
base.llvm_target = "powerpc64le-unknown-linux-musl".to_string();
7+
base.options.crt_static_default = false;
8+
base.options.static_position_independent_executables = true;
9+
base.options.need_rpath = true;
10+
11+
base
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
use crate::spec::Target;
2+
3+
pub fn target() -> Target {
4+
let mut base = super::powerpc_unknown_linux_musl::target();
5+
6+
base.llvm_target = "powerpc-unknown-linux-musl".to_string();
7+
base.options.crt_static_default = false;
8+
base.options.static_position_independent_executables = true;
9+
base.options.need_rpath = true;
10+
11+
base
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
use crate::spec::Target;
2+
3+
pub fn target() -> Target {
4+
let mut base = super::s390x_unknown_linux_musl::target();
5+
6+
base.llvm_target = "s390x-unknown-linux-musl".to_string();
7+
base.options.crt_static_default = false;
8+
base.options.static_position_independent_executables = true;
9+
base.options.need_rpath = true;
10+
11+
base
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
use crate::spec::Target;
2+
3+
pub fn target() -> Target {
4+
let mut base = super::x86_64_unknown_linux_musl::target();
5+
6+
base.llvm_target = "x86_64-unknown-linux-musl".to_string();
7+
base.options.crt_static_default = false;
8+
base.options.static_position_independent_executables = true;
9+
base.options.need_rpath = true;
10+
11+
base
12+
}

0 commit comments

Comments
 (0)