about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2016-11-15 09:10:23 -0800
committerGitHub <noreply@github.com>2016-11-15 09:10:23 -0800
commit43006fcea0066a935b657fff9ccef56983cbf56c (patch)
treef70413548d8a272f2e458e898543bfa88541457f
parent30857ae8f67676e32322cdbb6c606c319eacdd73 (diff)
parentd3574b8dc756c5bd5dd2d7b8053c0de15b902691 (diff)
downloadrust-43006fcea0066a935b657fff9ccef56983cbf56c.tar.gz
rust-43006fcea0066a935b657fff9ccef56983cbf56c.zip
Auto merge of #37742 - mrhota:llvm_debuginfo, r=alexcrichton
Add llvm debuginfo configure option

CC @nnethercote @Mark-Simulacrum

We add a new configure option, `--enable-llvm-debuginfo`, to do exactly what you'd think.

Re: #31033

Fixes #37738
-rwxr-xr-xconfigure4
-rw-r--r--mk/llvm.mk2
-rw-r--r--src/bootstrap/config.rs1
3 files changed, 7 insertions, 0 deletions
diff --git a/configure b/configure
index 16d6a90bf39..15bfb5e3ec2 100755
--- a/configure
+++ b/configure
@@ -642,6 +642,7 @@ opt_nosave optimize-cxx 1 "build optimized C++ code"
 opt_nosave optimize-llvm 1 "build optimized LLVM"
 opt_nosave llvm-assertions 0 "build LLVM with assertions"
 opt_nosave debug-assertions 0 "build with debugging assertions"
+opt_nosave llvm-release-debuginfo 0 "build LLVM with debugger metadata"
 opt_nosave debuginfo 0 "build with debugger metadata"
 opt_nosave debuginfo-lines 0 "build with line number debugger metadata"
 opt_nosave debug-jemalloc 0 "build jemalloc with --enable-debug --enable-fill"
@@ -778,6 +779,7 @@ if [ -n "$CFG_DISABLE_OPTIMIZE_CXX" ]; then putvar CFG_DISABLE_OPTIMIZE_CXX; fi
 if [ -n "$CFG_DISABLE_OPTIMIZE_LLVM" ]; then putvar CFG_DISABLE_OPTIMIZE_LLVM; fi
 if [ -n "$CFG_ENABLE_LLVM_ASSERTIONS" ]; then putvar CFG_ENABLE_LLVM_ASSERTIONS; fi
 if [ -n "$CFG_ENABLE_DEBUG_ASSERTIONS" ]; then putvar CFG_ENABLE_DEBUG_ASSERTIONS; fi
+if [ -n "$CFG_ENABLE_LLVM_RELEASE_DEBUGINFO" ]; then putvar CFG_ENABLE_LLVM_RELEASE_DEBUGINFO; fi
 if [ -n "$CFG_ENABLE_DEBUGINFO" ]; then putvar CFG_ENABLE_DEBUGINFO; fi
 if [ -n "$CFG_ENABLE_DEBUGINFO_LINES" ]; then putvar CFG_ENABLE_DEBUGINFO_LINES; fi
 if [ -n "$CFG_ENABLE_DEBUG_JEMALLOC" ]; then putvar CFG_ENABLE_DEBUG_JEMALLOC; fi
@@ -1772,6 +1774,8 @@ do
 
     if [ -n "$CFG_DISABLE_OPTIMIZE_LLVM" ]; then
         CMAKE_ARGS="$CMAKE_ARGS -DCMAKE_BUILD_TYPE=Debug"
+    elif [ -n "$CFG_ENABLE_LLVM_RELEASE_DEBUGINFO" ]; then
+        CMAKE_ARGS="$CMAKE_ARGS -DCMAKE_BUILD_TYPE=RelWithDebInfo"
     else
         CMAKE_ARGS="$CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release"
     fi
diff --git a/mk/llvm.mk b/mk/llvm.mk
index 5a91f5fcaa4..76367e6f3a6 100644
--- a/mk/llvm.mk
+++ b/mk/llvm.mk
@@ -21,6 +21,8 @@ endif
 
 ifdef CFG_DISABLE_OPTIMIZE_LLVM
 LLVM_BUILD_CONFIG_MODE := Debug
+else ifdef CFG_ENABLE_LLVM_RELEASE_DEBUGINFO
+LLVM_BUILD_CONFIG_MODE := RelWithDebInfo
 else
 LLVM_BUILD_CONFIG_MODE := Release
 endif
diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs
index 50c703a7354..945d482c2aa 100644
--- a/src/bootstrap/config.rs
+++ b/src/bootstrap/config.rs
@@ -339,6 +339,7 @@ impl Config {
                 ("COMPILER_DOCS", self.compiler_docs),
                 ("DOCS", self.docs),
                 ("LLVM_ASSERTIONS", self.llvm_assertions),
+                ("LLVM_RELEASE_DEBUGINFO", self.llvm_release_debuginfo),
                 ("OPTIMIZE_LLVM", self.llvm_optimize),
                 ("LLVM_VERSION_CHECK", self.llvm_version_check),
                 ("LLVM_STATIC_STDCPP", self.llvm_static_stdcpp),