Skip to content

Commit 766d404

Browse files
committed
Clean up
1 parent 8cfff6f commit 766d404

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

Tools/jit/_targets.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ class _Target(typing.Generic[_S, _R]):
5151
debug: bool = False
5252
verbose: bool = False
5353
cflags: str = ""
54+
frame_pointers: bool = False
5455
llvm_version: str = _llvm._LLVM_VERSION
5556
known_symbols: dict[str, int] = dataclasses.field(default_factory=dict)
5657
pyconfig_dir: pathlib.Path = pathlib.Path.cwd().resolve()
@@ -158,7 +159,6 @@ async def _compile(
158159
# code than -O3). As a nice benefit, it uses less memory too:
159160
"-Os",
160161
"-S",
161-
"-Xclang", f"-mframe-pointer={'all' if opname == 'shim' else 'reserved'}",
162162
# Shorten full absolute file paths in the generated code (like the
163163
# __FILE__ macro and assert failure messages) for reproducibility:
164164
f"-ffile-prefix-map={CPYTHON}=.",
@@ -175,10 +175,13 @@ async def _compile(
175175
"-o",
176176
f"{s}",
177177
f"{c}",
178-
*self.args,
179-
# Allow user-provided CFLAGS to override any defaults
180-
*shlex.split(self.cflags),
181178
]
179+
if self.frame_pointers:
180+
frame_pointer = "all" if opname == "shim" else "reserved"
181+
args_s += ["-Xclang", f"-mframe-pointer={frame_pointer}"]
182+
args_s += self.args
183+
# Allow user-provided CFLAGS to override any defaults
184+
args_s += shlex.split(self.cflags)
182185
await _llvm.run(
183186
"clang", args_s, echo=self.verbose, llvm_version=self.llvm_version
184187
)
@@ -614,7 +617,9 @@ def get_target(host: str) -> _COFF32 | _COFF64 | _ELF | _MachO:
614617
condition = "defined(__x86_64__) && defined(__linux__)"
615618
args = ["-fno-pic", "-mcmodel=medium", "-mlarge-data-threshold=0", "-fno-plt"]
616619
optimizer = _optimizers.OptimizerX86
617-
target = _ELF(host, condition, args=args, optimizer=optimizer)
620+
target = _ELF(
621+
host, condition, args=args, optimizer=optimizer, frame_pointers=True
622+
)
618623
else:
619624
raise ValueError(host)
620625
return target

0 commit comments

Comments
 (0)