diff options
| author | bors <bors@rust-lang.org> | 2013-08-29 06:00:48 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-08-29 06:00:48 -0700 |
| commit | 2b035d908b6d81fea4e8aaabafac9f69d9e20936 (patch) | |
| tree | d453c0e7c0b473b51ca75d77c046f671ec7b5524 | |
| parent | 33d65720360dedf612cab5f0d4343429e11b227e (diff) | |
| parent | 3801534d1085e74660a3bf9c84535938d9e74976 (diff) | |
| download | rust-2b035d908b6d81fea4e8aaabafac9f69d9e20936.tar.gz rust-2b035d908b6d81fea4e8aaabafac9f69d9e20936.zip | |
auto merge of #8838 : brson/rust/rvfpelim, r=alexcrichton
This reverts commit 2c0f9bd35493def5e23f0f43ddeba54da9d788b4, reversing changes made to f8c4f0ea9c96218dbc81081799e77875fbb071de. Conflicts: src/rustllvm/RustWrapper.cpp Fixes #8833
| -rw-r--r-- | mk/llvm.mk | 2 | ||||
| -rw-r--r-- | mk/platform.mk | 7 | ||||
| -rw-r--r-- | src/rustllvm/PassWrapper.cpp | 1 | ||||
| -rw-r--r-- | src/rustllvm/RustWrapper.cpp | 1 |
4 files changed, 9 insertions, 2 deletions
diff --git a/mk/llvm.mk b/mk/llvm.mk index 896718be6c4..12ccc55d4fa 100644 --- a/mk/llvm.mk +++ b/mk/llvm.mk @@ -26,7 +26,7 @@ ifeq ($(CFG_LLVM_ROOT),) $$(LLVM_CONFIG_$(1)): $$(LLVM_DEPS) @$$(call E, make: llvm) - $$(Q)$$(MAKE) -C $$(CFG_LLVM_BUILD_DIR_$(1)) + $$(Q)$$(MAKE) -C $$(CFG_LLVM_BUILD_DIR_$(1)) $$(CFG_LLVM_BUILD_ENV) $$(Q)touch $$(LLVM_CONFIG_$(1)) endif diff --git a/mk/platform.mk b/mk/platform.mk index 3e7ad914dab..6ee5420664d 100644 --- a/mk/platform.mk +++ b/mk/platform.mk @@ -26,7 +26,10 @@ endef $(foreach t,$(CFG_TARGET_TRIPLES),$(eval $(call DEF_OSTYPE_VAR,$(t)))) $(foreach t,$(CFG_TARGET_TRIPLES),$(info cfg: os for $(t) is $(OSTYPE_$(t)))) -CFG_GCCISH_CFLAGS += -DUSE_UTF8 +# FIXME: no-omit-frame-pointer is just so that task_start_wrapper +# has a frame pointer and the stack walker can understand it. Turning off +# frame pointers everywhere is overkill +CFG_GCCISH_CFLAGS += -fno-omit-frame-pointer -DUSE_UTF8 # On Darwin, we need to run dsymutil so the debugging information ends # up in the right place. On other platforms, it automatically gets @@ -150,6 +153,7 @@ CFG_GCCISH_POST_LIB_FLAGS_x86_64-unknown-linux-gnu := -Wl,-no-whole-archive CFG_DEF_SUFFIX_x86_64-unknown-linux-gnu := .linux.def CFG_INSTALL_NAME_x86_64-unknown-linux-gnu = CFG_LIBUV_LINK_FLAGS_x86_64-unknown-linux-gnu = +CFG_LLVM_BUILD_ENV_x86_64-unknown-linux-gnu="CXXFLAGS=-fno-omit-frame-pointer" CFG_EXE_SUFFIX_x86_64-unknown-linux-gnu = CFG_WINDOWSY_x86_64-unknown-linux-gnu := CFG_UNIXY_x86_64-unknown-linux-gnu := 1 @@ -175,6 +179,7 @@ CFG_GCCISH_POST_LIB_FLAGS_i686-unknown-linux-gnu := -Wl,-no-whole-archive CFG_DEF_SUFFIX_i686-unknown-linux-gnu := .linux.def CFG_INSTALL_NAME_i686-unknown-linux-gnu = CFG_LIBUV_LINK_FLAGS_i686-unknown-linux-gnu = +CFG_LLVM_BUILD_ENV_i686-unknown-linux-gnu="CXXFLAGS=-fno-omit-frame-pointer" CFG_EXE_SUFFIX_i686-unknown-linux-gnu = CFG_WINDOWSY_i686-unknown-linux-gnu := CFG_UNIXY_i686-unknown-linux-gnu := 1 diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp index 56ba56cf893..431b620e68f 100644 --- a/src/rustllvm/PassWrapper.cpp +++ b/src/rustllvm/PassWrapper.cpp @@ -78,6 +78,7 @@ LLVMRustCreateTargetMachine(const char *triple, } TargetOptions Options; + Options.NoFramePointerElim = true; Options.EnableSegmentedStacks = EnableSegmentedStacks; Options.FixedStackSegmentSize = 2 * 1024 * 1024; // XXX: This is too big. Options.FloatABIType = diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp index 40ee486ec2d..54af6fe7e73 100644 --- a/src/rustllvm/RustWrapper.cpp +++ b/src/rustllvm/RustWrapper.cpp @@ -284,6 +284,7 @@ LLVMRustBuildJIT(void* mem, std::string Err; TargetOptions Options; Options.JITEmitDebugInfo = true; + Options.NoFramePointerElim = true; Options.EnableSegmentedStacks = EnableSegmentedStacks; RustMCJITMemoryManager* MM = (RustMCJITMemoryManager*) mem; assert(MM); |
