summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--SConstruct10
-rw-r--r--site_scons/site_tools/icecream.py9
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")