swig: Warn on use of incompatible swig/gcc combinations
authorAndreas Hansson <andreas.hansson@arm.com>
Wed, 18 Sep 2013 12:46:32 +0000 (08:46 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Wed, 18 Sep 2013 12:46:32 +0000 (08:46 -0400)
This patch removes the fixed swig warning concerning 2.0.9/2.0.10 and
adds a warning message for incompatible combinations of swig and gcc.

SConstruct

index a2ccac05fa56433d778fae2199ecdfd25ebe8203..578c65394c7467dba8d52751262519ded0aa877c 100755 (executable)
@@ -730,14 +730,16 @@ if compareVersions(swig_version[2], min_swig_version) < 0:
     print '       Installed version:', swig_version[2]
     Exit(1)
 
-if swig_version[2] in ["2.0.9", "2.0.10"]:
+# Older versions of swig do not play well with more recent versions of
+# gcc due to assumptions on implicit includes (cstddef) and use of
+# namespaces
+if main['GCC'] and compareVersions(gcc_version, '4.6') > 0 and \
+        compareVersions(swig_version[2], '2') < 0:
     print '\n' + termcap.Yellow + termcap.Bold + \
-        'Warning: SWIG version 2.0.9/10 sometimes generates broken code.\n' + \
+        'Warning: SWIG 1.x cause issues with gcc 4.6 and later.\n' + \
         termcap.Normal + \
-        'This problem only affects some platforms and some Python\n' + \
-        'versions. See the following SWIG bug report for details:\n' + \
-        'http://sourceforge.net/p/swig/bugs/1297/\n'
-
+        'Use SWIG 2.x to avoid assumptions on implicit includes\n' + \
+        'and use of namespaces\n'
 
 # Set up SWIG flags & scanner
 swig_flags=Split('-c++ -python -modern -templatereduce $_CPPINCFLAGS')