| def getRoot(config): |
| if not config.parent: |
| return config |
| return getRoot(config.parent) |
| |
| |
| root = getRoot(config) |
| |
| if "libdispatch" in root.available_features: |
| additional_cflags = " -fblocks " |
| for index, (template, replacement) in enumerate(config.substitutions): |
| if template in ["%clang_tsan ", "%clangxx_tsan "]: |
| config.substitutions[index] = (template, replacement + additional_cflags) |
| else: |
| config.unsupported = True |
| |
| if config.host_os == "Darwin": |
| config.environment["TSAN_OPTIONS"] += ":ignore_noninstrumented_modules=1" |