Skip to content

Commit 8979e7a

Browse files
committed
---
yaml --- r: 169785 b: refs/heads/master c: 6638242 h: refs/heads/master i: 169783: 7871b7e v: v3
1 parent 9389cb8 commit 8979e7a

30 files changed

+767
-134
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: 2730075ad48623c77c722790389821523d7d4526
2+
refs/heads/master: 66382424798848e1c0135bb54674b71e2ef2066a
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 5b3cd3900ceda838f5798c30ab96ceb41f962534
55
refs/heads/try: 5204084bd2e46af7cc6e0147430e44dd0d657bbb

trunk/mk/cfg/aarch64-apple-ios.mk

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# aarch64-apple-ios configuration
2+
CFG_SDK_NAME_aarch64-apple-ios := iphoneos
3+
CFG_SDK_ARCHS_aarch64-apple-ios := arm64
4+
ifneq ($(findstring darwin,$(CFG_OSTYPE)),)
5+
CFG_IOS_SDK_aarch64-apple-ios := $(shell xcrun --show-sdk-path -sdk iphoneos 2>/dev/null)
6+
CFG_IOS_SDK_FLAGS_aarch64-apple-ios := -target aarch64-apple-darwin -isysroot $(CFG_IOS_SDK_aarch64-apple-ios) -mios-version-min=7.0 -arch arm64
7+
CC_aarch64-apple-ios = $(shell xcrun -find -sdk iphoneos clang)
8+
CXX_aarch64-apple-ios = $(shell xcrun -find -sdk iphoneos clang++)
9+
CPP_aarch64-apple-ios = $(shell xcrun -find -sdk iphoneos clang++)
10+
AR_aarch64-apple-ios = $(shell xcrun -find -sdk iphoneos ar)
11+
endif
12+
CFG_LIB_NAME_aarch64-apple-ios = lib$(1).a
13+
CFG_LIB_GLOB_aarch64-apple-ios = lib$(1)-*.a
14+
CFG_LIB_SKIP_INSTALL_aarch64-apple-ios = 1 #lib$(1)-*.a
15+
CFG_STATIC_LIB_NAME_aarch64-apple-ios=lib$(1).a
16+
CFG_LIB_DSYM_GLOB_aarch64-apple-ios = lib$(1)-*.a.dSYM
17+
CFG_CFLAGS_aarch64-apple-ios := $(CFG_IOS_SDK_FLAGS_aarch64-apple-ios)
18+
CFG_JEMALLOC_CFLAGS_aarch64-apple-ios := $(CFG_IOS_SDK_FLAGS_aarch64-apple-ios)
19+
CFG_GCCISH_CFLAGS_aarch64-apple-ios := -Wall -Werror -fPIC $(CFG_IOS_SDK_FLAGS_aarch64-apple-ios)
20+
CFG_GCCISH_CXXFLAGS_aarch64-apple-ios := -fno-rtti $(CFG_IOS_SDK_FLAGS_aarch64-apple-ios) -I$(CFG_IOS_SDK_aarch64-apple-ios)/usr/include/c++/4.2.1
21+
CFG_GCCISH_LINK_FLAGS_aarch64-apple-ios := -lpthread -syslibroot $(CFG_IOS_SDK_aarch64-apple-ios) -Wl,-no_compact_unwind
22+
CFG_GCCISH_DEF_FLAG_aarch64-apple-ios := -Wl,-exported_symbols_list,
23+
CFG_GCCISH_PRE_LIB_FLAGS_aarch64-apple-ios :=
24+
CFG_GCCISH_POST_LIB_FLAGS_aarch64-apple-ios :=
25+
CFG_DEF_SUFFIX_aarch64-apple-ios := .darwin.def
26+
CFG_LLC_FLAGS_aarch64-apple-ios := -mattr=+neon,+cyclone,+fp-armv8
27+
CFG_INSTALL_NAME_aarch64-apple-ios = -Wl,-install_name,@rpath/$(1)
28+
CFG_LIBUV_LINK_FLAGS_aarch64-apple-ios =
29+
CFG_EXE_SUFFIX_aarch64-apple-ios :=
30+
CFG_WINDOWSY_aarch64-apple-ios :=
31+
CFG_UNIXY_aarch64-apple-ios := 1
32+
CFG_PATH_MUNGE_aarch64-apple-ios := true
33+
CFG_LDPATH_aarch64-apple-ios :=
34+
CFG_RUN_aarch64-apple-ios = $(2)
35+
CFG_RUN_TARG_aarch64-apple-ios = $(call CFG_RUN_aarch64-apple-ios,,$(2))
36+
CFG_GNU_TRIPLE_aarch64-apple-ios := aarch64-apple-ios

trunk/mk/cfg/arm-apple-ios.mk

Lines changed: 0 additions & 35 deletions
This file was deleted.

trunk/mk/cfg/armv7-apple-ios.mk

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# armv7-apple-ios configuration
2+
CFG_SDK_NAME_armv7-apple-ios := iphoneos
3+
CFG_SDK_ARCHS_armv7-apple-ios := armv7
4+
ifneq ($(findstring darwin,$(CFG_OSTYPE)),)
5+
CFG_IOS_SDK_armv7-apple-ios := $(shell xcrun --show-sdk-path -sdk iphoneos 2>/dev/null)
6+
CFG_IOS_SDK_FLAGS_armv7-apple-ios := -target armv7-apple-ios -isysroot $(CFG_IOS_SDK_armv7-apple-ios) -mios-version-min=7.0
7+
CC_armv7-apple-ios = $(shell xcrun -find -sdk iphoneos clang)
8+
CXX_armv7-apple-ios = $(shell xcrun -find -sdk iphoneos clang++)
9+
CPP_armv7-apple-ios = $(shell xcrun -find -sdk iphoneos clang++)
10+
AR_armv7-apple-ios = $(shell xcrun -find -sdk iphoneos ar)
11+
endif
12+
CFG_LIB_NAME_armv7-apple-ios = lib$(1).a
13+
CFG_LIB_GLOB_armv7-apple-ios = lib$(1)-*.a
14+
CFG_LIB_SKIP_INSTALL_armv7-apple-ios = 1 #lib$(1)-*.a
15+
CFG_STATIC_LIB_NAME_armv7-apple-ios=lib$(1).a
16+
CFG_LIB_DSYM_GLOB_armv7-apple-ios = lib$(1)-*.a.dSYM
17+
CFG_JEMALLOC_CFLAGS_armv7-apple-ios := -arch armv7 -mfpu=vfp3 $(CFG_IOS_SDK_FLAGS_armv7-apple-ios)
18+
CFG_GCCISH_CFLAGS_armv7-apple-ios := -Wall -Werror -g -fPIC $(CFG_IOS_SDK_FLAGS_armv7-apple-ios) -mfpu=vfp3 -arch armv7
19+
CFG_GCCISH_CXXFLAGS_armv7-apple-ios := -fno-rtti $(CFG_IOS_SDK_FLAGS_armv7-apple-ios) -I$(CFG_IOS_SDK_armv7-apple-ios)/usr/include/c++/4.2.1
20+
CFG_GCCISH_LINK_FLAGS_armv7-apple-ios := -lpthread -syslibroot $(CFG_IOS_SDK_armv7-apple-ios) -Wl,-no_compact_unwind
21+
CFG_GCCISH_DEF_FLAG_armv7-apple-ios := -Wl,-exported_symbols_list,
22+
CFG_GCCISH_PRE_LIB_FLAGS_armv7-apple-ios :=
23+
CFG_GCCISH_POST_LIB_FLAGS_armv7-apple-ios :=
24+
CFG_DEF_SUFFIX_armv7-apple-ios := .darwin.def
25+
CFG_LLC_FLAGS_armv7-apple-ios := -mattr=+vfp3,+v7,+neon -march=arm
26+
CFG_INSTALL_NAME_armv7-apple-ios = -Wl,-install_name,@rpath/$(1)
27+
CFG_EXE_SUFFIX_armv7-apple-ios :=
28+
CFG_WINDOWSY_armv7-apple-ios :=
29+
CFG_UNIXY_armv7-apple-ios := 1
30+
CFG_PATH_MUNGE_armv7-apple-ios := true
31+
CFG_LDPATH_armv7-apple-ios :=
32+
CFG_RUN_armv7-apple-ios = $(2)
33+
CFG_RUN_TARG_armv7-apple-ios = $(call CFG_RUN_armv7-apple-ios,,$(2))
34+
CFG_GNU_TRIPLE_armv7-apple-ios := armv7-apple-ios

trunk/mk/cfg/armv7s-apple-ios.mk

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# armv7s-apple-ios configuration
2+
CFG_SDK_NAME_armv7s-apple-ios := iphoneos
3+
CFG_SDK_ARCHS_armv7s-apple-ios := armv7s
4+
ifneq ($(findstring darwin,$(CFG_OSTYPE)),)
5+
CFG_IOS_SDK_armv7s-apple-ios := $(shell xcrun --show-sdk-path -sdk iphoneos 2>/dev/null)
6+
CFG_IOS_SDK_FLAGS_armv7s-apple-ios := -target armv7s-apple-ios -isysroot $(CFG_IOS_SDK_armv7s-apple-ios) -mios-version-min=7.0
7+
CC_armv7s-apple-ios = $(shell xcrun -find -sdk iphoneos clang)
8+
CXX_armv7s-apple-ios = $(shell xcrun -find -sdk iphoneos clang++)
9+
CPP_armv7s-apple-ios = $(shell xcrun -find -sdk iphoneos clang++)
10+
AR_armv7s-apple-ios = $(shell xcrun -find -sdk iphoneos ar)
11+
endif
12+
CFG_LIB_NAME_armv7s-apple-ios = lib$(1).a
13+
CFG_LIB_GLOB_armv7s-apple-ios = lib$(1)-*.a
14+
CFG_LIB_SKIP_INSTALL_armv7s-apple-ios = 1 #lib$(1)-*.a
15+
CFG_STATIC_LIB_NAME_armv7s-apple-ios=lib$(1).a
16+
CFG_LIB_DSYM_GLOB_armv7s-apple-ios = lib$(1)-*.a.dSYM
17+
CFG_JEMALLOC_CFLAGS_armv7s-apple-ios := -arch armv7s -mfpu=vfp4 $(CFG_IOS_SDK_FLAGS_armv7s-apple-ios)
18+
CFG_GCCISH_CFLAGS_armv7s-apple-ios := -Wall -Werror -g -fPIC $(CFG_IOS_SDK_FLAGS_armv7s-apple-ios) -mfpu=vfp4 -arch armv7s
19+
CFG_GCCISH_CXXFLAGS_armv7s-apple-ios := -fno-rtti $(CFG_IOS_SDK_FLAGS_armv7s-apple-ios) -I$(CFG_IOS_SDK_armv7s-apple-ios)/usr/include/c++/4.2.1
20+
CFG_GCCISH_LINK_FLAGS_armv7s-apple-ios := -lpthread -syslibroot $(CFG_IOS_SDK_armv7s-apple-ios) -Wl,-no_compact_unwind
21+
CFG_GCCISH_DEF_FLAG_armv7s-apple-ios := -Wl,-exported_symbols_list,
22+
CFG_GCCISH_PRE_LIB_FLAGS_armv7s-apple-ios :=
23+
CFG_GCCISH_POST_LIB_FLAGS_armv7s-apple-ios :=
24+
CFG_DEF_SUFFIX_armv7s-apple-ios := .darwin.def
25+
CFG_LLC_FLAGS_armv7s-apple-ios := -mattr=+vfp4,+v7,+neon
26+
CFG_INSTALL_NAME_armv7s-apple-ios = -Wl,-install_name,@rpath/$(1)
27+
CFG_EXE_SUFFIX_armv7s-apple-ios :=
28+
CFG_WINDOWSY_armv7s-apple-ios :=
29+
CFG_UNIXY_armv7s-apple-ios := 1
30+
CFG_PATH_MUNGE_armv7s-apple-ios := true
31+
CFG_LDPATH_armv7s-apple-ios :=
32+
CFG_RUN_armv7s-apple-ios = $(2)
33+
CFG_RUN_TARG_armv7s-apple-ios = $(call CFG_RUN_armv7s-apple-ios,,$(2))
34+
CFG_GNU_TRIPLE_armv7s-apple-ios := armv7s-apple-ios

trunk/mk/cfg/i386-apple-ios.mk

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# i386-apple-ios configuration
2-
CFG_SDK_NAME_i386-apple-ios = iphonesimulator
3-
CFG_SDK_ARCHS_i386-apple-ios = i386
2+
CFG_SDK_NAME_i386-apple-ios := iphonesimulator
3+
CFG_SDK_ARCHS_i386-apple-ios := i386
44
ifneq ($(findstring darwin,$(CFG_OSTYPE)),)
5-
CFG_IOSSIM_SDK = $(shell xcrun --show-sdk-path -sdk iphonesimulator 2>/dev/null)
6-
CFG_IOSSIM_FLAGS = -target i386-apple-ios -isysroot $(CFG_IOSSIM_SDK) -mios-simulator-version-min=7.0
5+
CFG_IOSSIM_SDK_i386-apple-ios := $(shell xcrun --show-sdk-path -sdk iphonesimulator 2>/dev/null)
6+
CFG_IOSSIM_FLAGS_i386-apple-ios := -m32 -target i386-apple-ios -isysroot $(CFG_IOSSIM_SDK_i386-apple-ios) -mios-simulator-version-min=7.0
77
CC_i386-apple-ios = $(shell xcrun -find -sdk iphonesimulator clang)
88
CXX_i386-apple-ios = $(shell xcrun -find -sdk iphonesimulator clang++)
99
CPP_i386-apple-ios = $(shell xcrun -find -sdk iphonesimulator clang++)
@@ -13,21 +13,21 @@ CFG_LIB_NAME_i386-apple-ios = lib$(1).a
1313
CFG_LIB_GLOB_i386-apple-ios = lib$(1)-*.dylib
1414
CFG_STATIC_LIB_NAME_i386-apple-ios=lib$(1).a
1515
CFG_LIB_DSYM_GLOB_i386-apple-ios = lib$(1)-*.dylib.dSYM
16-
CFG_GCCISH_CFLAGS_i386-apple-ios = -Wall -Werror -g -fPIC -m32 $(CFG_IOSSIM_FLAGS)
17-
CFG_GCCISH_CXXFLAGS_i386-apple-ios = -fno-rtti $(CFG_IOSSIM_FLAGS) -I$(CFG_IOSSIM_SDK)/usr/include/c++/4.2.1
18-
CFG_GCCISH_LINK_FLAGS_i386-apple-ios = -lpthread -Wl,-no_compact_unwind -m32 -Wl,-syslibroot $(CFG_IOSSIM_SDK)
19-
CFG_GCCISH_DEF_FLAG_i386-apple-ios = -Wl,-exported_symbols_list,
20-
CFG_GCCISH_PRE_LIB_FLAGS_i386-apple-ios =
21-
CFG_GCCISH_POST_LIB_FLAGS_i386-apple-ios =
22-
CFG_DEF_SUFFIX_i386-apple-ios = .darwin.def
16+
CFG_GCCISH_CFLAGS_i386-apple-ios := -Wall -Werror -g -fPIC -m32 $(CFG_IOSSIM_FLAGS_i386-apple-ios)
17+
CFG_GCCISH_CXXFLAGS_i386-apple-ios := -fno-rtti $(CFG_IOSSIM_FLAGS_i386-apple-ios) -I$(CFG_IOSSIM_SDK_i386-apple-ios)/usr/include/c++/4.2.1
18+
CFG_GCCISH_LINK_FLAGS_i386-apple-ios := -lpthread -m32 -Wl,-no_compact_unwind -m32 -Wl,-syslibroot $(CFG_IOSSIM_SDK_i386-apple-ios)
19+
CFG_GCCISH_DEF_FLAG_i386-apple-ios := -Wl,-exported_symbols_list,
20+
CFG_GCCISH_PRE_LIB_FLAGS_i386-apple-ios :=
21+
CFG_GCCISH_POST_LIB_FLAGS_i386-apple-ios :=
22+
CFG_DEF_SUFFIX_i386-apple-ios := .darwin.def
2323
CFG_LLC_FLAGS_i386-apple-ios =
2424
CFG_INSTALL_NAME_i386-apple-ios = -Wl,-install_name,@rpath/$(1)
25-
CFG_EXE_SUFFIX_i386-apple-ios =
26-
CFG_WINDOWSY_i386-apple-ios =
27-
CFG_UNIXY_i386-apple-ios = 1
28-
CFG_PATH_MUNGE_i386-apple-ios = true
25+
CFG_EXE_SUFFIX_i386-apple-ios :=
26+
CFG_WINDOWSY_i386-apple-ios :=
27+
CFG_UNIXY_i386-apple-ios := 1
28+
CFG_PATH_MUNGE_i386-apple-ios = :true
2929
CFG_LDPATH_i386-apple-ios =
3030
CFG_RUN_i386-apple-ios = $(2)
3131
CFG_RUN_TARG_i386-apple-ios = $(call CFG_RUN_i386-apple-ios,,$(2))
32-
CFG_JEMALLOC_CFLAGS_i386-apple-ios = $(CFG_IOSSIM_FLAGS) -target i386-apple-ios -Wl,-syslibroot $(CFG_IOSSIM_SDK) -Wl,-no_compact_unwind
32+
CFG_JEMALLOC_CFLAGS_i386-apple-ios = $(CFG_IOSSIM_FLAGS_i386-apple-ios) -target i386-apple-ios #-Wl,-syslibroot $(CFG_IOSSIM_SDK_i386-apple-ios) -Wl,-no_compact_unwind
3333
CFG_GNU_TRIPLE_i386-apple-ios := i386-apple-ios

trunk/mk/cfg/x86_64-apple-ios.mk

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# x86_64-apple-ios configuration
2+
CFG_SDK_NAME_x86_64-apple-ios := iphonesimulator
3+
CFG_SDK_ARCHS_x86_64-apple-ios := x86_64
4+
ifneq ($(findstring darwin,$(CFG_OSTYPE)),)
5+
CFG_IOSSIM_SDK_x86_64-apple-ios := $(shell xcrun --show-sdk-path -sdk iphonesimulator 2>/dev/null)
6+
CFG_IOSSIM_FLAGS_x86_64-apple-ios := -m64 -target x86_64-apple-ios -isysroot $(CFG_IOSSIM_SDK_x86_64-apple-ios) -mios-simulator-version-min=7.0
7+
CC_x86_64-apple-ios = $(shell xcrun -find -sdk iphonesimulator clang)
8+
CXX_x86_64-apple-ios = $(shell xcrun -find -sdk iphonesimulator clang++)
9+
CPP_x86_64-apple-ios = $(shell xcrun -find -sdk iphonesimulator clang++)
10+
AR_x86_64-apple-ios = $(shell xcrun -find -sdk iphonesimulator ar)
11+
endif
12+
CFG_LIB_NAME_x86_64-apple-ios = lib$(1).a
13+
CFG_LIB_GLOB_x86_64-apple-ios = lib$(1)-*.a
14+
CFG_LIB_SKIP_INSTALL_x86_64-apple-ios = 1 #lib$(1)-*.a
15+
CFG_STATIC_LIB_NAME_x86_64-apple-ios=lib$(1).a
16+
CFG_LIB_DSYM_GLOB_x86_64-apple-ios = lib$(1)-*.a.dSYM
17+
CFG_CFLAGS_x86_64-apple-ios := $(CFG_IOSSIM_FLAGS_x86_64-apple-ios)
18+
CFG_JEMALLOC_CFLAGS_x86_64-apple-ios := $(CFG_IOSSIM_FLAGS_x86_64-apple-ios)
19+
CFG_GCCISH_CFLAGS_x86_64-apple-ios := -Wall -Werror -fPIC $(CFG_IOSSIM_FLAGS_x86_64-apple-ios)
20+
CFG_GCCISH_CXXFLAGS_x86_64-apple-ios := -fno-rtti $(CFG_IOSSIM_FLAGS_x86_64-apple-ios) -I$(CFG_IOSSIM_SDK_x86_64-apple-ios)/usr/include/c++/4.2.1
21+
CFG_GCCISH_LINK_FLAGS_x86_64-apple-ios := -lpthread -Wl,-no_compact_unwind -m64 -Wl,-syslibroot $(CFG_IOSSIM_SDK_x86_64-apple-ios)
22+
CFG_GCCISH_DEF_FLAG_x86_64-apple-ios := -Wl,-exported_symbols_list,
23+
CFG_GCCISH_PRE_LIB_FLAGS_x86_64-apple-ios :=
24+
CFG_GCCISH_POST_LIB_FLAGS_x86_64-apple-ios :=
25+
CFG_DEF_SUFFIX_x86_64-apple-ios := .darwin.def
26+
CFG_LLC_FLAGS_x86_64-apple-ios :=
27+
CFG_INSTALL_NAME_x86_64-apple-ios = -Wl,-install_name,@rpath/$(1)
28+
CFG_LIBUV_LINK_FLAGS_x86_64-apple-ios :=
29+
CFG_EXE_SUFFIX_x86_64-apple-ios :=
30+
CFG_WINDOWSY_x86_64-apple-ios :=
31+
CFG_UNIXY_x86_64-apple-ios := 1
32+
CFG_PATH_MUNGE_x86_64-apple-ios := true
33+
CFG_LDPATH_x86_64-apple-ios :=
34+
CFG_RUN_x86_64-apple-ios = $(2)
35+
CFG_RUN_TARG_x86_64-apple-ios = $(call CFG_RUN_x86_64-apple-ios,,$(2))
36+
CFG_GNU_TRIPLE_i386-apple-ios := x86_64-apple-ios

trunk/src/compiler-rt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Subproject commit 62a4ca6055ad6fda8faf767b93b5736dcdfb7013
1+
Subproject commit 58ab642c30d9f97735d5745b5d01781ee199c6ae

trunk/src/liblibc/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1969,7 +1969,7 @@ pub mod types {
19691969
}
19701970
}
19711971

1972-
#[cfg(target_arch = "x86_64")]
1972+
#[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))]
19731973
pub mod arch {
19741974
pub mod c95 {
19751975
pub type c_char = i8;

trunk/src/librustc/metadata/creader.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -409,6 +409,7 @@ impl<'a> CrateReader<'a> {
409409
crate_name: name,
410410
hash: hash.map(|a| &*a),
411411
filesearch: self.sess.target_filesearch(kind),
412+
target: &self.sess.target.target,
412413
triple: &self.sess.opts.target_triple[],
413414
root: root,
414415
rejected_via_hash: vec!(),
@@ -472,6 +473,7 @@ impl<'a> CrateReader<'a> {
472473
crate_name: &name[],
473474
hash: None,
474475
filesearch: self.sess.host_filesearch(PathKind::Crate),
476+
target: &self.sess.host,
475477
triple: config::host_triple(),
476478
root: &None,
477479
rejected_via_hash: vec!(),
@@ -486,6 +488,7 @@ impl<'a> CrateReader<'a> {
486488
target_only = true;
487489
should_link = info.should_link;
488490

491+
load_ctxt.target = &self.sess.target.target;
489492
load_ctxt.triple = target_triple;
490493
load_ctxt.filesearch = self.sess.target_filesearch(PathKind::Crate);
491494
load_ctxt.load_library_crate()

trunk/src/librustc/metadata/loader.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,7 @@ use metadata::filesearch::{FileSearch, FileMatches, FileDoesntMatch};
225225
use syntax::codemap::Span;
226226
use syntax::diagnostic::SpanHandler;
227227
use util::fs;
228+
use rustc_back::target::Target;
228229

229230
use std::ffi::CString;
230231
use std::cmp;
@@ -248,6 +249,8 @@ pub struct Context<'a> {
248249
pub ident: &'a str,
249250
pub crate_name: &'a str,
250251
pub hash: Option<&'a Svh>,
252+
// points to either self.sess.target.target or self.sess.host, must match triple
253+
pub target: &'a Target,
251254
pub triple: &'a str,
252255
pub filesearch: FileSearch<'a>,
253256
pub root: &'a Option<CratePaths>,
@@ -499,7 +502,7 @@ impl<'a> Context<'a> {
499502

500503
for lib in m.into_iter() {
501504
info!("{} reading metadata from: {}", flavor, lib.display());
502-
let metadata = match get_metadata_section(self.sess.target.target.options.is_like_osx,
505+
let metadata = match get_metadata_section(self.target.options.is_like_osx,
503506
&lib) {
504507
Ok(blob) => {
505508
if self.crate_matches(blob.as_slice(), &lib) {
@@ -588,7 +591,7 @@ impl<'a> Context<'a> {
588591
// Returns the corresponding (prefix, suffix) that files need to have for
589592
// dynamic libraries
590593
fn dylibname(&self) -> (String, String) {
591-
let t = &self.sess.target.target;
594+
let t = &self.target;
592595
(t.options.dll_prefix.clone(), t.options.dll_suffix.clone())
593596
}
594597

trunk/src/librustc/session/mod.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ use syntax::parse::token;
2525
use syntax::parse::ParseSess;
2626
use syntax::{ast, codemap};
2727

28+
use rustc_back::target::Target;
29+
2830
use std::os;
2931
use std::cell::{Cell, RefCell};
3032

@@ -35,6 +37,7 @@ pub mod search_paths;
3537
// session for a single crate.
3638
pub struct Session {
3739
pub target: config::Config,
40+
pub host: Target,
3841
pub opts: config::Options,
3942
pub cstore: CStore,
4043
pub parse_sess: ParseSess,
@@ -243,6 +246,13 @@ pub fn build_session_(sopts: config::Options,
243246
local_crate_source_file: Option<Path>,
244247
span_diagnostic: diagnostic::SpanHandler)
245248
-> Session {
249+
let host = match Target::search(config::host_triple()) {
250+
Ok(t) => t,
251+
Err(e) => {
252+
span_diagnostic.handler()
253+
.fatal((format!("Error loading host specification: {}", e)).as_slice());
254+
}
255+
};
246256
let target_cfg = config::build_target_config(&sopts, &span_diagnostic);
247257
let p_s = parse::new_parse_sess_special_handler(span_diagnostic);
248258
let default_sysroot = match sopts.maybe_sysroot {
@@ -268,6 +278,7 @@ pub fn build_session_(sopts: config::Options,
268278

269279
let sess = Session {
270280
target: target_cfg,
281+
host: host,
271282
opts: sopts,
272283
cstore: CStore::new(token::get_ident_interner()),
273284
parse_sess: p_s,
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
use target::{Target, TargetOptions};
12+
use super::apple_ios_base::{opts, Arch};
13+
14+
pub fn target() -> Target {
15+
Target {
16+
// reference layout: e-m:o-i64:64-i128:128-n32:64-S128
17+
data_layout: "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-\
18+
i128:128-f32:32:32-f64:64:64-v64:64:64-v128:128:128-\
19+
a:0:64-n32:64-S128".to_string(),
20+
llvm_target: "arm64-apple-ios".to_string(),
21+
target_endian: "little".to_string(),
22+
target_pointer_width: "64".to_string(),
23+
arch: "aarch64".to_string(),
24+
target_os: "ios".to_string(),
25+
options: TargetOptions {
26+
features: "+neon,+fp-armv8,+cyclone".to_string(),
27+
eliminate_frame_pointer: false,
28+
.. opts(Arch::Arm64)
29+
},
30+
}
31+
}

0 commit comments

Comments
 (0)