summaryrefslogtreecommitdiff
path: root/SCons
diff options
context:
space:
mode:
authorDidier Raboud <odyx@debian.org>2018-03-31 20:38:18 +0200
committerDidier Raboud <odyx@debian.org>2018-03-31 20:38:18 +0200
commit59c41c0897494001ced424157660d4ee59bb5426 (patch)
treee45bf4b81a685aa86735244d6fc7716b0fcaf9a2 /SCons
parent13406335997bbe6a887c9b30dcd58df39b83b44e (diff)
Import Upstream version 2.31
Diffstat (limited to 'SCons')
-rwxr-xr-xSCons/Config/gnu25
1 files changed, 23 insertions, 2 deletions
diff --git a/SCons/Config/gnu b/SCons/Config/gnu
index 32c5ec7..153bdb5 100755
--- a/SCons/Config/gnu
+++ b/SCons/Config/gnu
@@ -207,10 +207,31 @@ cenv = defenv.Clone()
cross_env(cenv)
conf = cenv.Configure(custom_tests = { 'CheckRequirement' : check_requirement })
-if conf.CheckRequirement('memcpy', 'struct s { char c[128]; } t = { "test" };'):
+memcpy_test = """
+struct s // gcc 3
+{
+ char c[128];
+} t = { "test" };
+char a[] = // gcc 4
+ {'/', 'F', 'I' ,'L', 'L', 'S', 'C', 'R', 'E', 'E', 'N', 0};
+int i;
+for (i = 0; i < 100; i++) // avoid a and t being optimized out
+{
+ i += a[i] ^ t.c[i];
+}
+return i;
+"""
+
+memset_test = """
+char c[128] = "test";
+c[0] = '6'; // avoid c being optimized out
+return c[1]; // avoid c being optimized out
+"""
+
+if conf.CheckRequirement('memcpy', memcpy_test):
add_file('memcpy.c')
-if conf.CheckRequirement('memset', 'char c[128] = "test";'):
+if conf.CheckRequirement('memset', memset_test):
add_file('memset.c')
conf.Finish()