|
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