@@ -51,6 +51,7 @@ class _Target(typing.Generic[_S, _R]):
5151 verbose : bool = False
5252 cflags : str = ""
5353 llvm_version : str = _llvm ._LLVM_VERSION
54+ llvm_tools_install_dir : str | None = None
5455 known_symbols : dict [str , int ] = dataclasses .field (default_factory = dict )
5556 pyconfig_dir : pathlib .Path = pathlib .Path .cwd ().resolve ()
5657
@@ -83,7 +84,11 @@ async def _parse(self, path: pathlib.Path) -> _stencils.StencilGroup:
8384 group = _stencils .StencilGroup ()
8485 args = ["--disassemble" , "--reloc" , f"{ path } " ]
8586 output = await _llvm .maybe_run (
86- "llvm-objdump" , args , echo = self .verbose , llvm_version = self .llvm_version
87+ "llvm-objdump" ,
88+ args ,
89+ echo = self .verbose ,
90+ llvm_version = self .llvm_version ,
91+ llvm_tools_install_dir = self .llvm_tools_install_dir ,
8792 )
8893 if output is not None :
8994 # Make sure that full paths don't leak out (for reproducibility):
@@ -103,7 +108,11 @@ async def _parse(self, path: pathlib.Path) -> _stencils.StencilGroup:
103108 f"{ path } " ,
104109 ]
105110 output = await _llvm .run (
106- "llvm-readobj" , args , echo = self .verbose , llvm_version = self .llvm_version
111+ "llvm-readobj" ,
112+ args ,
113+ echo = self .verbose ,
114+ llvm_version = self .llvm_version ,
115+ llvm_tools_install_dir = self .llvm_tools_install_dir ,
107116 )
108117 # --elf-output-style=JSON is only *slightly* broken on Mach-O...
109118 output = output .replace ("PrivateExtern\n " , "\n " )
@@ -177,14 +186,22 @@ async def _compile(
177186 * shlex .split (self .cflags ),
178187 ]
179188 await _llvm .run (
180- "clang" , args_s , echo = self .verbose , llvm_version = self .llvm_version
189+ "clang" ,
190+ args_s ,
191+ echo = self .verbose ,
192+ llvm_version = self .llvm_version ,
193+ llvm_tools_install_dir = self .llvm_tools_install_dir ,
181194 )
182195 self .optimizer (
183196 s , label_prefix = self .label_prefix , symbol_prefix = self .symbol_prefix
184197 ).run ()
185198 args_o = [f"--target={ self .triple } " , "-c" , "-o" , f"{ o } " , f"{ s } " ]
186199 await _llvm .run (
187- "clang" , args_o , echo = self .verbose , llvm_version = self .llvm_version
200+ "clang" ,
201+ args_o ,
202+ echo = self .verbose ,
203+ llvm_version = self .llvm_version ,
204+ llvm_tools_install_dir = self .llvm_tools_install_dir ,
188205 )
189206 return await self ._parse (o )
190207
0 commit comments