scons: In Check(Cxx|Link)Flag, only install the flag if it exists.
authorGabe Black <gabe.black@gmail.com>
Thu, 11 Feb 2021 06:21:06 +0000 (22:21 -0800)
committerGabe Black <gabe.black@gmail.com>
Thu, 11 Feb 2021 19:33:24 +0000 (19:33 +0000)
These functions where correctly returning whether a flag had existed,
and also correctly not installing it if asked not to. Unfortunately if
they *were* asked to install the flag, they ignored whether or not it
had actually existed to begin with.

Change-Id: I2dca0e1a0ddbc182576d48237aeea5452a02c51b
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/41159
Maintainer: Gabe Black <gabe.black@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
site_scons/gem5_scons/configure.py

index e539c73a271f89359eb18bdeb2bb5a7c2866ff37..cebbb12ed1058f02aad5f10954a2a764c73e6ef0 100644 (file)
@@ -47,7 +47,7 @@ def CheckCxxFlag(context, flag, autoadd=True):
     last_cxxflags = context.env['CXXFLAGS']
     context.env.Append(CXXFLAGS=[flag])
     ret = context.TryCompile('', '.cc')
-    if not autoadd:
+    if not (ret and autoadd):
         context.env['CXXFLAGS'] = last_cxxflags
     context.Result(ret)
     return ret
@@ -57,7 +57,7 @@ def CheckLinkFlag(context, flag, autoadd=True, set_for_shared=True):
     last_linkflags = context.env['LINKFLAGS']
     context.env.Append(LINKFLAGS=[flag])
     ret = context.TryLink('int main(int, char *[]) { return 0; }', '.cc')
-    if not autoadd:
+    if not (ret and autoadd):
         context.env['LINKFLAGS'] = last_linkflags
     if set_for_shared:
         assert(autoadd)