From cb5ddfa16c6b8d362573f5a3b9b675ae22f21197 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Sun, 6 Sep 2026 15:26:34 +0100 Subject: [PATCH 1/2] gh-148501: Disable AArch64 Mach-O LOH for JIT stencils --- Tools/jit/_targets.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Tools/jit/_targets.py b/Tools/jit/_targets.py index ceee383ea680d74..30a9469d0f0d371 100644 --- a/Tools/jit/_targets.py +++ b/Tools/jit/_targets.py @@ -65,6 +65,7 @@ class _Target(typing.Generic[_S, _R]): condition: str _: dataclasses.KW_ONLY args: typing.Sequence[str] = () + stencil_args: typing.Sequence[str] = () optimizer: type[_optimizers.Optimizer] = _optimizers.Optimizer label_prefix: typing.ClassVar[str] symbol_prefix: typing.ClassVar[str] @@ -250,6 +251,7 @@ async def _build_stencil_group( if self.frame_pointers: args_s += ["-Xclang", "-mframe-pointer=reserved"] args_s += self._compile_args() + args_s += self.stencil_args # Allow user-provided CFLAGS to override any defaults args_s += shlex.split(self.cflags) await _llvm.run( @@ -720,7 +722,12 @@ def get_target(host: str) -> _COFF32 | _COFF64 | _ELF | _MachO: host = "aarch64-apple-darwin" condition = "defined(__aarch64__) && defined(__APPLE__)" optimizer = _optimizers.OptimizerAArch64 - target = _MachO(host, condition, optimizer=optimizer) + target = _MachO( + host, + condition, + optimizer=optimizer, + stencil_args=["-mllvm", "-aarch64-enable-collect-loh=false"], + ) elif re.fullmatch(r"aarch64-pc-windows-msvc", host): host = "aarch64-pc-windows-msvc" condition = "defined(_M_ARM64)" From df47b129ce60f5a7d75159a9171e0de22b0aae77 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Sun, 6 Sep 2026 16:13:25 +0100 Subject: [PATCH 2/2] Add NEWS entry --- .../2026-09-06-16-13-12.gh-issue-148501.a5odxo.rst | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Misc/NEWS.d/next/Core_and_Builtins/2026-09-06-16-13-12.gh-issue-148501.a5odxo.rst diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-09-06-16-13-12.gh-issue-148501.a5odxo.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-09-06-16-13-12.gh-issue-148501.a5odxo.rst new file mode 100644 index 000000000000000..7039045d9eabc3d --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2026-09-06-16-13-12.gh-issue-148501.a5odxo.rst @@ -0,0 +1,2 @@ +Improve JIT stencils on macOS AArch64 by disabling unused linker +optimization hints.