Skip to content

Commit 0d098be

Browse files
committed
---
yaml --- r: 95573 b: refs/heads/dist-snap c: a7453ad h: refs/heads/master i: 95571: f8b08f6 v: v3
1 parent d155005 commit 0d098be

File tree

6 files changed

+34
-14
lines changed

6 files changed

+34
-14
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ refs/heads/try: c274a6888410ce3e357e014568b43310ed787d36
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c
9-
refs/heads/dist-snap: 7e6f5bb5c9eaab292a755036656cf62bfc669974
9+
refs/heads/dist-snap: a7453ad0dffd94e57389b893527111c98a96ec40
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
1212
refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0

branches/dist-snap/mk/platform.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ CFG_LIB_GLOB_x86_64-apple-darwin=lib$(1)-*.dylib
204204
CFG_LIB_DSYM_GLOB_x86_64-apple-darwin=lib$(1)-*.dylib.dSYM
205205
CFG_GCCISH_CFLAGS_x86_64-apple-darwin := -Wall -Werror -g -fPIC -m64 -arch x86_64
206206
CFG_GCCISH_CXXFLAGS_x86_64-apple-darwin := -fno-rtti
207-
CFG_GCCISH_LINK_FLAGS_x86_64-apple-darwin := -dynamiclib -pthread -framework CoreServices -Wl,-no_compact_unwind -m64
207+
CFG_GCCISH_LINK_FLAGS_x86_64-apple-darwin := -dynamiclib -pthread -framework CoreServices -m64
208208
CFG_GCCISH_DEF_FLAG_x86_64-apple-darwin := -Wl,-exported_symbols_list,
209209
CFG_GCCISH_PRE_LIB_FLAGS_x86_64-apple-darwin :=
210210
CFG_GCCISH_POST_LIB_FLAGS_x86_64-apple-darwin :=
@@ -230,7 +230,7 @@ CFG_LIB_GLOB_i686-apple-darwin=lib$(1)-*.dylib
230230
CFG_LIB_DSYM_GLOB_i686-apple-darwin=lib$(1)-*.dylib.dSYM
231231
CFG_GCCISH_CFLAGS_i686-apple-darwin := -Wall -Werror -g -fPIC -m32 -arch i386
232232
CFG_GCCISH_CXXFLAGS_i686-apple-darwin := -fno-rtti
233-
CFG_GCCISH_LINK_FLAGS_i686-apple-darwin := -dynamiclib -pthread -framework CoreServices -Wl,-no_compact_unwind -m32
233+
CFG_GCCISH_LINK_FLAGS_i686-apple-darwin := -dynamiclib -pthread -framework CoreServices -m32
234234
CFG_GCCISH_DEF_FLAG_i686-apple-darwin := -Wl,-exported_symbols_list,
235235
CFG_GCCISH_PRE_LIB_FLAGS_i686-apple-darwin :=
236236
CFG_GCCISH_POST_LIB_FLAGS_i686-apple-darwin :=

branches/dist-snap/src/librustc/back/link.rs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1112,14 +1112,6 @@ pub fn link_args(sess: Session,
11121112
~"-Wl,-rpath,/usr/local/lib/gcc44"]);
11131113
}
11141114

1115-
// OS X 10.6 introduced 'compact unwind info', which is produced by the
1116-
// linker from the dwarf unwind info. Unfortunately, it does not seem to
1117-
// understand how to unwind our __morestack frame, so we have to turn it
1118-
// off. This has impacted some other projects like GHC.
1119-
if sess.targ_cfg.os == session::OsMacos {
1120-
args.push(~"-Wl,-no_compact_unwind");
1121-
}
1122-
11231115
// Stack growth requires statically linking a __morestack function
11241116
args.push(~"-lmorestack");
11251117

branches/dist-snap/src/librustc/front/feature_gate.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ static KNOWN_FEATURES: &'static [(&'static str, Status)] = &[
3535
("struct_variant", Active),
3636
("once_fns", Active),
3737
("asm", Active),
38+
("managed_boxes", Active),
3839

3940
// These are used to test this portion of the compiler, they don't actually
4041
// mean anything
@@ -137,6 +138,15 @@ impl Visitor<()> for Context {
137138
experimental and likely to be removed");
138139

139140
},
141+
// NOTE: enable after snapshot
142+
ast::ty_box(_) if false => {
143+
self.gate_feature("managed_boxes", t.span, "The managed box syntax may be replaced \
144+
by a library type, and a garbage \
145+
collector is not yet implemented. \
146+
Consider using the `std::rc` module \
147+
as it performs much better as a \
148+
reference counting implementation.");
149+
}
140150
_ => {}
141151
}
142152

branches/dist-snap/src/rt/arch/i386/morestack.S

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,9 @@
6262
is that OS X 10.6+ uses its own 'compact unwind info',
6363
an undocumented format generated by the linker from
6464
the DWARF CFI. This compact unwind info doesn't correctly
65-
capture the nuance of the __morestack frame, and as a
66-
result all of our linking on OS X uses the -no_compact_unwind
67-
flag.
65+
capture the nuance of the __morestack frame, so we need to
66+
prevent the linker from attempting to convert its DWARF unwind
67+
information.
6868
*/
6969

7070
.text
@@ -118,6 +118,15 @@ MORESTACK:
118118
// FIXME(#9854) these cfi directives don't work on windows.
119119

120120
pushl %ebp
121+
122+
#if defined(__APPLE__)
123+
// The pattern of the return address being saved twice to the same location
124+
// tells the OS X linker that it should not attempt to convert the DWARF
125+
// unwind information to the compact format.
126+
.cfi_offset %eip, -4
127+
.cfi_offset %eip, -4
128+
#endif
129+
121130
// The CFA is 20 bytes above the register that it is
122131
// associated with for this frame (which will be %ebp)
123132
.cfi_def_cfa_offset 20

branches/dist-snap/src/rt/arch/x86_64/morestack.S

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,15 @@ MORESTACK:
4343
// bytes greater than a normal frame, to allow the unwinder
4444
// to skip the partial frame of the original function.
4545
.cfi_def_cfa_offset 24
46+
47+
#if defined(__APPLE__)
48+
// The pattern of the return address being saved twice to the same location
49+
// tells the OS X linker that it should not attempt to convert the DWARF
50+
// unwind information to the compact format.
51+
.cfi_offset %rip, -8
52+
.cfi_offset %rip, -8
53+
#endif
54+
4655
// %rbp is -24 bytes from the CFA
4756
.cfi_offset %rbp, -24
4857
movq %rsp, %rbp

0 commit comments

Comments
 (0)