From: Gabe Black Date: Tue, 12 Mar 2019 12:00:41 +0000 (-0700) Subject: scons: Don't use isdir in AddLocalRPATH. X-Git-Tag: v19.0.0.0~1061 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=91195ae7f637d1d4879cc3bf0860147333846e75;p=gem5.git 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 Maintainer: Gabe Black --- 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 = [