Since it isn't possible to disable linkage of just GCC startup objects, we now need logic for finding libc installation directory and copying the required startup files (e.g. crt2.o) to rustlib directory. Bonus change: use the `-nodefaultlibs` flag on Windows, thus paving the way to direct linker invocation.
32 lines
1.1 KiB
Rust
32 lines
1.1 KiB
Rust
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
|
|
// file at the top-level directory of this distribution and at
|
|
// http://rust-lang.org/COPYRIGHT.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
|
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
|
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
|
// option. This file may not be copied, modified, or distributed
|
|
// except according to those terms.
|
|
|
|
use target::Target;
|
|
|
|
pub fn target() -> Target {
|
|
let mut base = super::windows_base::opts();
|
|
base.cpu = "pentium4".to_string();
|
|
|
|
// Mark all dynamic libraries and executables as compatible with the larger 4GiB address
|
|
// space available to x86 Windows binaries on x86_64.
|
|
base.pre_link_args.push("-Wl,--large-address-aware".to_string());
|
|
|
|
Target {
|
|
llvm_target: "i686-pc-windows-gnu".to_string(),
|
|
target_endian: "little".to_string(),
|
|
target_pointer_width: "32".to_string(),
|
|
arch: "x86".to_string(),
|
|
target_os: "windows".to_string(),
|
|
target_env: "gnu".to_string(),
|
|
target_vendor: "pc".to_string(),
|
|
options: base,
|
|
}
|
|
}
|