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'