Skip to content

Commit 30150d2

Browse files
committed
---
yaml --- r: 95566 b: refs/heads/dist-snap c: dadb6f0 h: refs/heads/master v: v3
1 parent 3fce196 commit 30150d2

File tree

7 files changed

+15
-34
lines changed

7 files changed

+15
-34
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: b477f7a7b74615bba9ab3074082f9cc76a24e8a3
9+
refs/heads/dist-snap: dadb6f0cd9fa7e4b402a0107358acb34002d4895
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 -m64
207+
CFG_GCCISH_LINK_FLAGS_x86_64-apple-darwin := -dynamiclib -pthread -framework CoreServices -Wl,-no_compact_unwind -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 -m32
233+
CFG_GCCISH_LINK_FLAGS_i686-apple-darwin := -dynamiclib -pthread -framework CoreServices -Wl,-no_compact_unwind -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: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1112,6 +1112,14 @@ 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+
11151123
// Stack growth requires statically linking a __morestack function
11161124
args.push(~"-lmorestack");
11171125

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

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

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

140139
},
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-
}
150140
_ => {}
151141
}
152142

branches/dist-snap/src/libstd/str.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -997,6 +997,7 @@ pub fn utf8_char_width(b: u8) -> uint {
997997
/// the utf8 bytes of a string.
998998
pub struct CharRange {
999999
/// Current `char`
1000+
/// This field should be public making it private causes error while compiling!!
10001001
ch: char,
10011002

10021003
/// Index of the first byte of the next `char`

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

Lines changed: 3 additions & 12 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, so we need to
66-
prevent the linker from attempting to convert its DWARF unwind
67-
information.
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.
6868
*/
6969

7070
.text
@@ -118,15 +118,6 @@ 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-
130121
// The CFA is 20 bytes above the register that it is
131122
// associated with for this frame (which will be %ebp)
132123
.cfi_def_cfa_offset 20

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

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,6 @@ 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-
5546
// %rbp is -24 bytes from the CFA
5647
.cfi_offset %rbp, -24
5748
movq %rsp, %rbp

0 commit comments

Comments
 (0)