def METHOD_NAME(known_systems) -> Dict[str, List[str]]:
    def check_drv(drv_path) -> List[str]:
        systems: List[str] = []
        with open(drv_path) as f:
            drv = pynixutil.drvparse(f.read())
        input_drvs: Set[str] = set(drv.input_drvs.keys())
        for attr, build_system in known_systems.items():
            if build_system in input_drvs:
                systems.append(attr)
        return systems
    with ThreadPoolExecutor() as e:
        futures = {
            attr: e.submit(check_drv, drv_path)
            for attr, drv_path in yield_drvs()
            if attr not in SKIP_ATTRS
        }
        build_systems = {attr: future.result() for attr, future in futures.items()}
    # Second pass, filter out any empty lists
    return {attr: systems for attr, systems in build_systems.items() if systems}