]>
Commit | Line | Data |
---|---|---|
9fa01778 | 1 | use crate::spec::{LinkerFlavor, Target, TargetResult}; |
7453a54e | 2 | |
5bcae85e | 3 | pub fn target() -> TargetResult { |
a7813a04 | 4 | let mut base = super::linux_musl_base::opts(); |
7453a54e | 5 | base.cpu = "pentium4".to_string(); |
c30ab7b3 | 6 | base.max_atomic_width = Some(64); |
cc61c64b XL |
7 | base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m32".to_string()); |
8 | base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-Wl,-melf_i386".to_string()); | |
041b39d2 | 9 | base.stack_probes = true; |
7453a54e | 10 | |
32a655c1 SL |
11 | // The unwinder used by i686-unknown-linux-musl, the LLVM libunwind |
12 | // implementation, apparently relies on frame pointers existing... somehow. | |
13 | // It's not clear to me why nor where this dependency is introduced, but the | |
14 | // test suite does not pass with frame pointers eliminated and it passes | |
15 | // with frame pointers present. | |
16 | // | |
17 | // If you think that this is no longer necessary, then please feel free to | |
18 | // ignore! If it still passes the test suite and the bots then sounds good | |
19 | // to me. | |
20 | // | |
21 | // This may or may not be related to this bug: | |
22 | // https://llvm.org/bugs/show_bug.cgi?id=30879 | |
23 | base.eliminate_frame_pointer = false; | |
24 | ||
5bcae85e | 25 | Ok(Target { |
7453a54e SL |
26 | llvm_target: "i686-unknown-linux-musl".to_string(), |
27 | target_endian: "little".to_string(), | |
28 | target_pointer_width: "32".to_string(), | |
ea8adc8c | 29 | target_c_int_width: "32".to_string(), |
dfeec247 XL |
30 | data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\ |
31 | f64:32:64-f80:32-n8:16:32-S128" | |
32 | .to_string(), | |
7453a54e SL |
33 | arch: "x86".to_string(), |
34 | target_os: "linux".to_string(), | |
35 | target_env: "musl".to_string(), | |
36 | target_vendor: "unknown".to_string(), | |
cc61c64b | 37 | linker_flavor: LinkerFlavor::Gcc, |
7453a54e | 38 | options: base, |
5bcae85e | 39 | }) |
7453a54e | 40 | } |