1 use crate::spec::{LinkerFlavor, LldFlavor, Target}; 2 target() -> Target3pub fn target() -> Target { 4 let mut base = super::windows_msvc_base::opts(); 5 base.cpu = "pentium4".to_string(); 6 base.max_atomic_width = Some(64); 7 8 let pre_link_args_msvc = vec![ 9 // Mark all dynamic libraries and executables as compatible with the larger 4GiB address 10 // space available to x86 Windows binaries on x86_64. 11 "/LARGEADDRESSAWARE".to_string(), 12 // Ensure the linker will only produce an image if it can also produce a table of 13 // the image's safe exception handlers. 14 // https://docs.microsoft.com/en-us/cpp/build/reference/safeseh-image-has-safe-exception-handlers 15 "/SAFESEH".to_string(), 16 ]; 17 base.pre_link_args.entry(LinkerFlavor::Msvc).or_default().extend(pre_link_args_msvc.clone()); 18 base.pre_link_args 19 .entry(LinkerFlavor::Lld(LldFlavor::Link)) 20 .or_default() 21 .extend(pre_link_args_msvc); 22 23 Target { 24 llvm_target: "i686-pc-windows-msvc".to_string(), 25 pointer_width: 32, 26 data_layout: "e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-\ 27 i64:64-f80:32-n8:16:32-a:0:32-S32" 28 .to_string(), 29 arch: "x86".to_string(), 30 options: base, 31 } 32 } 33