summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2019-03-12 05:00:41 -0700
committerGabe Black <gabeblack@google.com>2019-03-12 15:43:38 +0000
commit91195ae7f637d1d4879cc3bf0860147333846e75 (patch)
treec1638f69aaf37fd0dfd84e606fb6a08c92db08c6
parent4ec5b85a31ded2afdf784555a7c736e61c8b594a (diff)
downloadgem5-91195ae7f637d1d4879cc3bf0860147333846e75.tar.xz
scons: Don't use isdir in AddLocalRPATH.
isdir isn't a nice way to check if an FS.Base is a File or a Dir as was initially assumed, it literally checks if a path can be stat-ed and is reported as a directory by stat. This means that if a directory is going to be created as part of the build, the result of that test will change depending on whether that part of the build has happened successfully before. A better check which behaves as originally intended is to check whether the Node is an instance of the SCons.Node.FS.Dir class. Change-Id: Id041917d50b768a8205769c0a05320f92b09993c Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17128 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Gabe Black <gabeblack@google.com>
-rwxr-xr-xSConstruct3
1 files changed, 2 insertions, 1 deletions
diff --git a/SConstruct b/SConstruct
index 3599371c8..53b8c9dea 100755
--- a/SConstruct
+++ b/SConstruct
@@ -97,6 +97,7 @@ from re import match
# SCons includes
import SCons
import SCons.Node
+import SCons.Node.FS
from m5.util import compareVersions, readCommand
@@ -1096,7 +1097,7 @@ def add_local_rpath(env, *targets):
binary.'''
for target in targets:
target = env.Entry(target)
- if not target.isdir():
+ if not isinstance(target, SCons.Node.FS.Dir):
target = target.dir
relpath = os.path.relpath(target.abspath, env['BUILDDIR'])
components = [