Skip to content

Commit 7ef6b7c

Browse files
committed
Add musl targets for mips64
1 parent 8aa5c4e commit 7ef6b7c

File tree

4 files changed

+148
-0
lines changed

4 files changed

+148
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
use spec::{LinkerFlavor, Target, TargetOptions, TargetResult};
12+
13+
pub fn target() -> TargetResult {
14+
Ok(Target {
15+
llvm_target: "mips64-unknown-linux-gnuabi64".to_string(),
16+
target_endian: "big".to_string(),
17+
target_pointer_width: "64".to_string(),
18+
target_c_int_width: "32".to_string(),
19+
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(),
20+
arch: "mips64".to_string(),
21+
target_os: "linux".to_string(),
22+
target_env: "musl".to_string(),
23+
target_vendor: "unknown".to_string(),
24+
linker_flavor: LinkerFlavor::Gcc,
25+
options: TargetOptions {
26+
// NOTE(mips64r2) matches C toolchain
27+
cpu: "mips64r2".to_string(),
28+
features: "+mips64r2".to_string(),
29+
max_atomic_width: Some(64),
30+
31+
// see #36994
32+
exe_allocation_crate: None,
33+
34+
..super::linux_base::opts()
35+
},
36+
})
37+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
use spec::{LinkerFlavor, Target, TargetOptions, TargetResult};
12+
13+
pub fn target() -> TargetResult {
14+
Ok(Target {
15+
llvm_target: "mips64-unknown-linux-gnuabi64".to_string(),
16+
target_endian: "big".to_string(),
17+
target_pointer_width: "64".to_string(),
18+
target_c_int_width: "32".to_string(),
19+
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(),
20+
arch: "mips64".to_string(),
21+
target_os: "linux".to_string(),
22+
target_env: "musl".to_string(),
23+
target_vendor: "unknown".to_string(),
24+
linker_flavor: LinkerFlavor::Gcc,
25+
options: TargetOptions {
26+
// NOTE(mips64r2) matches C toolchain
27+
cpu: "mips64r2".to_string(),
28+
features: "+mips64r2,+soft-float".to_string(),
29+
max_atomic_width: Some(64),
30+
31+
// see #36994
32+
exe_allocation_crate: None,
33+
34+
..super::linux_base::opts()
35+
},
36+
})
37+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
use spec::{LinkerFlavor, Target, TargetOptions, TargetResult};
12+
13+
pub fn target() -> TargetResult {
14+
Ok(Target {
15+
llvm_target: "mips64el-unknown-linux-gnuabi64".to_string(),
16+
target_endian: "little".to_string(),
17+
target_pointer_width: "64".to_string(),
18+
target_c_int_width: "32".to_string(),
19+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(),
20+
arch: "mips64".to_string(),
21+
target_os: "linux".to_string(),
22+
target_env: "musl".to_string(),
23+
target_vendor: "unknown".to_string(),
24+
linker_flavor: LinkerFlavor::Gcc,
25+
options: TargetOptions {
26+
// NOTE(mips64r2) matches C toolchain
27+
cpu: "mips64r2".to_string(),
28+
features: "+mips64r2".to_string(),
29+
max_atomic_width: Some(64),
30+
31+
// see #36994
32+
exe_allocation_crate: None,
33+
34+
..super::linux_base::opts()
35+
},
36+
})
37+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
use spec::{LinkerFlavor, Target, TargetOptions, TargetResult};
12+
13+
pub fn target() -> TargetResult {
14+
Ok(Target {
15+
llvm_target: "mips64el-unknown-linux-gnuabi64".to_string(),
16+
target_endian: "little".to_string(),
17+
target_pointer_width: "64".to_string(),
18+
target_c_int_width: "32".to_string(),
19+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(),
20+
arch: "mips64".to_string(),
21+
target_os: "linux".to_string(),
22+
target_env: "musl".to_string(),
23+
target_vendor: "unknown".to_string(),
24+
linker_flavor: LinkerFlavor::Gcc,
25+
options: TargetOptions {
26+
// NOTE(mips64r2) matches C toolchain
27+
cpu: "mips64r2".to_string(),
28+
features: "+mips64r2,+soft-float".to_string(),
29+
max_atomic_width: Some(64),
30+
31+
// see #36994
32+
exe_allocation_crate: None,
33+
34+
..super::linux_base::opts()
35+
},
36+
})
37+
}

0 commit comments

Comments
 (0)