@@ -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 " )
@@ -181,14 +190,22 @@ async def _compile(
181190 * shlex .split (self .cflags ),
182191 ]
183192 await _llvm .run (
184- "clang" , args_s , echo = self .verbose , llvm_version = self .llvm_version
193+ "clang" ,
194+ args_s ,
195+ echo = self .verbose ,
196+ llvm_version = self .llvm_version ,
197+ llvm_tools_install_dir = self .llvm_tools_install_dir ,
185198 )
186199 self .optimizer (
187200 s , label_prefix = self .label_prefix , symbol_prefix = self .symbol_prefix
188201 ).run ()
189202 args_o = [f"--target={ self .triple } " , "-c" , "-o" , f"{ o } " , f"{ s } " ]
190203 await _llvm .run (
191- "clang" , args_o , echo = self .verbose , llvm_version = self .llvm_version
204+ "clang" ,
205+ args_o ,
206+ echo = self .verbose ,
207+ llvm_version = self .llvm_version ,
208+ llvm_tools_install_dir = self .llvm_tools_install_dir ,
192209 )
193210 return await self ._parse (o )
194211
0 commit comments