|
1 |
| -use crate::spec::{LinkArgs, LinkerFlavor, PanicStrategy, TargetOptions}; |
| 1 | +use crate::spec::{LldFlavor, LinkArgs, LinkerFlavor, PanicStrategy, TargetOptions}; |
2 | 2 | use std::default::Default;
|
3 | 3 |
|
4 | 4 | pub fn opts() -> TargetOptions {
|
5 |
| - let mut args = LinkArgs::new(); |
6 |
| - args.insert(LinkerFlavor::Gcc, vec![ |
7 |
| - "-Wl,-Bstatic".to_string(), |
8 |
| - "-Wl,--no-dynamic-linker".to_string(), |
9 |
| - "-Wl,--gc-sections".to_string(), |
10 |
| - "-Wl,--as-needed".to_string(), |
| 5 | + let mut pre_link_args = LinkArgs::new(); |
| 6 | + pre_link_args.insert(LinkerFlavor::Lld(LldFlavor::Ld), vec![ |
| 7 | + "--build-id".to_string(), |
| 8 | + "--hash-style=gnu".to_string(), |
| 9 | + "--Bstatic".to_string(), |
11 | 10 | ]);
|
12 | 11 |
|
13 | 12 | TargetOptions {
|
| 13 | + linker: Some("rust-lld".to_owned()), |
14 | 14 | executables: true,
|
15 | 15 | has_elf_tls: true,
|
16 | 16 | linker_is_gnu: true,
|
17 |
| - no_default_libraries: false, |
| 17 | + pre_link_args, |
| 18 | + no_default_libraries: true, |
18 | 19 | panic_strategy: PanicStrategy::Abort,
|
19 |
| - position_independent_executables: false, |
20 |
| - pre_link_args: args, |
| 20 | + position_independent_executables: true, |
21 | 21 | relocation_model: "static".to_string(),
|
22 |
| - target_family: Some("unix".to_string()), |
23 |
| - tls_model: "local-exec".to_string(), |
| 22 | + target_family: None, |
| 23 | + tls_model: "initial-exec".to_string(), |
24 | 24 | .. Default::default()
|
25 | 25 | }
|
26 | 26 | }
|
0 commit comments