CFG_LIB_GLOB=lib$(1)-*.dylib
CFG_UNIXY := 1
CFG_LDENV := DYLD_LIBRARY_PATH
- CFG_GCCISH_LINK_FLAGS += -dynamiclib -lpthread -framework CoreServices
+ CFG_GCCISH_LINK_FLAGS += -dynamiclib -lpthread -framework CoreServices -Wl,-no_compact_unwind
CFG_GCCISH_DEF_FLAG := -Wl,-exported_symbols_list,
# Darwin has a very blurry notion of "64 bit", and claims it's running
# "on an i386" when the whole userspace is 64-bit and the compiler
gcc_args += ["-lrt", "-ldl"];
}
+ // OS X 10.6 introduced 'compact unwind info', which is produced by the
+ // linker from the dwarf unwind info. Unfortunately, it does not seem to
+ // understand how to unwind our __morestack frame, so we have to turn it
+ // off. This has impacted some other projects like GHC.
+ if sess.get_targ_cfg().os == session::os_macos {
+ gcc_args += ["-Wl,-no_compact_unwind"];
+ }
+
// Stack growth requires statically linking a __morestack function
gcc_args += ["-lmorestack"];