diff options
-rw-r--r-- | SConstruct | 10 | ||||
-rw-r--r-- | site_scons/site_tools/icecream.py | 9 |
2 files changed, 9 insertions, 10 deletions
diff --git a/SConstruct b/SConstruct index 4fe431bb22f..91f59ff3d6e 100644 --- a/SConstruct +++ b/SConstruct @@ -2926,7 +2926,15 @@ def doConfigure(myenv): # generator to return at command line expansion time so that # we can change the signature if the file contents change. if blackfiles: - blacklist_options=["-fsanitize-blacklist=%s" % blackfile for blackfile in blackfiles] + # Unconditionally using the full path can affect SCons cached builds, so we only do + # this in cases where we know it's going to matter. + blackfile_paths = [ + blackfile.get_abspath() if ('ICECC' in env and env['ICECC']) else blackfile.path + for blackfile in blackfiles + ] + # Make these files available to remote icecream builds if requested + blacklist_options=[f"-fsanitize-blacklist={file_path}" for file_path in blackfile_paths] + env.AppendUnique(ICECC_CREATE_ENV_ADDFILES=blackfile_paths) def SanitizerBlacklistGenerator(source, target, env, for_signature): if for_signature: return [f.get_csig() for f in blackfiles] diff --git a/site_scons/site_tools/icecream.py b/site_scons/site_tools/icecream.py index 53cc5eb8ec4..6482c500c5a 100644 --- a/site_scons/site_tools/icecream.py +++ b/site_scons/site_tools/icecream.py @@ -130,15 +130,6 @@ def generate(env): env.get("ICECC_CREATE_ENV", "icecc-create-env") ) - # We can't handle sanitizer blacklist files, so disable icecc then, and just flow through - # icerun to prevent slamming the local system with a huge -j value. - if any( - f.startswith("-fsanitize-blacklist=") - for fs in ["CCFLAGS", "CFLAGS", "CXXFLAGS"] - for f in env[fs] - ): - env["ICECC"] = "$ICERUN" - # Make CC and CXX absolute paths too. It is better for icecc. env["CC"] = env.WhereIs("$CC") env["CXX"] = env.WhereIs("$CXX") |