[Mesa-dev] [PATCH] scons: Fix build when rtti is disabled

Alexander von Gluck IV kallisti5 at unixzen.com
Tue Oct 15 19:12:29 CEST 2013


* The rtti fix actually dug up a bug in the scons build scripts.
* Autotools took the LLVM cpp and cxx flags, while scons only took
  the cpp flags.
* This grabs the cxx flags and applies them where needed.
* I'm going to run over this and clean things up further, however
  this fixes the build where scons is used and rtti is disabled.
* The only linux platform I can find with LLVM no-rtti is Ubuntu.
* Resolved bug #70471

Tested-by: Vinson Lee <vlee at freedesktop.org>
---
 scons/llvm.py                           | 3 +++
 src/gallium/auxiliary/SConscript        | 2 ++
 src/gallium/drivers/llvmpipe/SConscript | 9 +++++----
 3 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/scons/llvm.py b/scons/llvm.py
index c1c3736..34b5891 100644
--- a/scons/llvm.py
+++ b/scons/llvm.py
@@ -190,6 +190,9 @@ def generate(env):
                 pass
             env.MergeFlags(cppflags)
 
+            cxxflags = env.backtick('llvm-config --cxxflags').rstrip()
+            env.Append(LLVM_CXXFLAGS = cxxflags)
+
             components = ['engine', 'bitwriter', 'x86asmprinter']
 
             if llvm_version >= distutils.version.LooseVersion('3.1'):
diff --git a/src/gallium/auxiliary/SConscript b/src/gallium/auxiliary/SConscript
index 31dfed3..3ac3112 100644
--- a/src/gallium/auxiliary/SConscript
+++ b/src/gallium/auxiliary/SConscript
@@ -46,6 +46,8 @@ source = env.ParseSourceList('Makefile.sources', [
 ])
 
 if env['llvm']:
+    env.Append(CXXFLAGS = env['LLVM_CXXFLAGS'])
+
     source += env.ParseSourceList('Makefile.sources', [
         'GALLIVM_SOURCES',
         'GALLIVM_CPP_SOURCES'
diff --git a/src/gallium/drivers/llvmpipe/SConscript b/src/gallium/drivers/llvmpipe/SConscript
index 20500fd..71faee2 100644
--- a/src/gallium/drivers/llvmpipe/SConscript
+++ b/src/gallium/drivers/llvmpipe/SConscript
@@ -10,12 +10,13 @@ if not env['llvm']:
 env = env.Clone()
 
 llvmpipe = env.ConvenienceLibrary(
-	target = 'llvmpipe',
-	source = env.ParseSourceList('Makefile.sources', 'C_SOURCES')
-	)
+    target = 'llvmpipe',
+    source = env.ParseSourceList('Makefile.sources', 'C_SOURCES')
+)
 
-env.Alias('llvmpipe', llvmpipe)
+env.Append(CXXFLAGS = env['LLVM_CXXFLAGS'])
 
+env.Alias('llvmpipe', llvmpipe)
 
 if not env['embedded']:
     env = env.Clone()
-- 
1.8.4



More information about the mesa-dev mailing list