Skip to content

Commit cb5ddfa

Browse files
committed
gh-148501: Disable AArch64 Mach-O LOH for JIT stencils
1 parent 83dbe6a commit cb5ddfa

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

Tools/jit/_targets.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ class _Target(typing.Generic[_S, _R]):
6565
condition: str
6666
_: dataclasses.KW_ONLY
6767
args: typing.Sequence[str] = ()
68+
stencil_args: typing.Sequence[str] = ()
6869
optimizer: type[_optimizers.Optimizer] = _optimizers.Optimizer
6970
label_prefix: typing.ClassVar[str]
7071
symbol_prefix: typing.ClassVar[str]
@@ -250,6 +251,7 @@ async def _build_stencil_group(
250251
if self.frame_pointers:
251252
args_s += ["-Xclang", "-mframe-pointer=reserved"]
252253
args_s += self._compile_args()
254+
args_s += self.stencil_args
253255
# Allow user-provided CFLAGS to override any defaults
254256
args_s += shlex.split(self.cflags)
255257
await _llvm.run(
@@ -720,7 +722,12 @@ def get_target(host: str) -> _COFF32 | _COFF64 | _ELF | _MachO:
720722
host = "aarch64-apple-darwin"
721723
condition = "defined(__aarch64__) && defined(__APPLE__)"
722724
optimizer = _optimizers.OptimizerAArch64
723-
target = _MachO(host, condition, optimizer=optimizer)
725+
target = _MachO(
726+
host,
727+
condition,
728+
optimizer=optimizer,
729+
stencil_args=["-mllvm", "-aarch64-enable-collect-loh=false"],
730+
)
724731
elif re.fullmatch(r"aarch64-pc-windows-msvc", host):
725732
host = "aarch64-pc-windows-msvc"
726733
condition = "defined(_M_ARM64)"

0 commit comments

Comments
 (0)