File tree Expand file tree Collapse file tree 7 files changed +15
-34
lines changed Expand file tree Collapse file tree 7 files changed +15
-34
lines changed Original file line number Diff line number Diff line change 2
2
refs/heads/master: 0da105a8b7b6b1e0568e8ff20f6ff4b13cc7ecc2
3
3
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4
4
refs/heads/snap-stage3: a6d3e57dca68fde4effdda3e4ae2887aa535fcd6
5
- refs/heads/try: b477f7a7b74615bba9ab3074082f9cc76a24e8a3
5
+ refs/heads/try: dadb6f0cd9fa7e4b402a0107358acb34002d4895
6
6
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
7
7
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8
8
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c
Original file line number Diff line number Diff line change @@ -204,7 +204,7 @@ CFG_LIB_GLOB_x86_64-apple-darwin=lib$(1)-*.dylib
204
204
CFG_LIB_DSYM_GLOB_x86_64-apple-darwin =lib$(1 ) -*.dylib.dSYM
205
205
CFG_GCCISH_CFLAGS_x86_64-apple-darwin := -Wall -Werror -g -fPIC -m64 -arch x86_64
206
206
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
208
208
CFG_GCCISH_DEF_FLAG_x86_64-apple-darwin := -Wl,-exported_symbols_list,
209
209
CFG_GCCISH_PRE_LIB_FLAGS_x86_64-apple-darwin :=
210
210
CFG_GCCISH_POST_LIB_FLAGS_x86_64-apple-darwin :=
@@ -230,7 +230,7 @@ CFG_LIB_GLOB_i686-apple-darwin=lib$(1)-*.dylib
230
230
CFG_LIB_DSYM_GLOB_i686-apple-darwin =lib$(1 ) -*.dylib.dSYM
231
231
CFG_GCCISH_CFLAGS_i686-apple-darwin := -Wall -Werror -g -fPIC -m32 -arch i386
232
232
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
234
234
CFG_GCCISH_DEF_FLAG_i686-apple-darwin := -Wl,-exported_symbols_list,
235
235
CFG_GCCISH_PRE_LIB_FLAGS_i686-apple-darwin :=
236
236
CFG_GCCISH_POST_LIB_FLAGS_i686-apple-darwin :=
Original file line number Diff line number Diff line change @@ -1112,6 +1112,14 @@ pub fn link_args(sess: Session,
1112
1112
~"-Wl , -rpath, /usr/local/lib/gcc44"] ) ;
1113
1113
}
1114
1114
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
+
1115
1123
// Stack growth requires statically linking a __morestack function
1116
1124
args. push ( ~"-lmorestack") ;
1117
1125
Original file line number Diff line number Diff line change @@ -35,7 +35,6 @@ static KNOWN_FEATURES: &'static [(&'static str, Status)] = &[
35
35
( "struct_variant" , Active ) ,
36
36
( "once_fns" , Active ) ,
37
37
( "asm" , Active ) ,
38
- ( "managed_boxes" , Active ) ,
39
38
40
39
// These are used to test this portion of the compiler, they don't actually
41
40
// mean anything
@@ -138,15 +137,6 @@ impl Visitor<()> for Context {
138
137
experimental and likely to be removed") ;
139
138
140
139
} ,
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
- }
150
140
_ => { }
151
141
}
152
142
Original file line number Diff line number Diff line change @@ -997,6 +997,7 @@ pub fn utf8_char_width(b: u8) -> uint {
997
997
/// the utf8 bytes of a string.
998
998
pub struct CharRange {
999
999
/// Current `char`
1000
+ /// This field should be public making it private causes error while compiling!!
1000
1001
ch : char ,
1001
1002
1002
1003
/// Index of the first byte of the next `char`
Original file line number Diff line number Diff line change 62
62
is that OS X 10.6+ uses its own 'compact unwind info',
63
63
an undocumented format generated by the linker from
64
64
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 .
68
68
*/
69
69
70
70
.text
@@ -118,15 +118,6 @@ MORESTACK:
118
118
// FIXME(#9854) these cfi directives don't work on windows.
119
119
120
120
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
-
130
121
// The CFA is 20 bytes above the register that it is
131
122
// associated with for this frame (which will be %ebp)
132
123
.cfi_def_cfa_offset 20
Original file line number Diff line number Diff line change @@ -43,15 +43,6 @@ MORESTACK:
43
43
// bytes greater than a normal frame, to allow the unwinder
44
44
// to skip the partial frame of the original function.
45
45
.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
-
55
46
// %rbp is -24 bytes from the CFA
56
47
.cfi_offset %rbp , -24
57
48
movq %rsp , %rbp
You can’t perform that action at this time.
0 commit comments