Skip to content

Commit e610885

Browse files
committed
-mcmodel=medium
1 parent 05e89c3 commit e610885

File tree

2 files changed

+5
-17
lines changed

2 files changed

+5
-17
lines changed

Tools/jit/_stencils.py

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,8 @@ class HoleValue(enum.Enum):
8484
"R_AARCH64_MOVW_UABS_G3": "patch_aarch64_16d",
8585
# x86_64-unknown-linux-gnu:
8686
"R_X86_64_64": "patch_64",
87-
"R_X86_64_GOTPCREL": "patch_32r",
8887
"R_X86_64_GOTPCRELX": "patch_x86_64_32rx",
89-
"R_X86_64_PC32": "patch_32r",
88+
"R_X86_64_PLT32": "patch_32r",
9089
"R_X86_64_REX_GOTPCRELX": "patch_x86_64_32rx",
9190
# x86_64-apple-darwin:
9291
"X86_64_RELOC_BRANCH": "patch_32r",
@@ -222,11 +221,11 @@ def remove_jump(self, *, alignment: int = 1) -> None:
222221
offset -= 3
223222
case Hole(
224223
offset=offset,
225-
kind="IMAGE_REL_I386_REL32" | "X86_64_RELOC_BRANCH",
224+
kind="IMAGE_REL_I386_REL32" | "R_X86_64_PLT32" | "X86_64_RELOC_BRANCH",
226225
value=HoleValue.CONTINUE,
227226
symbol=None,
228-
addend=-4,
229-
) as hole:
227+
addend=addend,
228+
) as hole if _signed(addend) == -4:
230229
# jmp 5
231230
jump = b"\xE9\x00\x00\x00\x00"
232231
offset -= 1
@@ -239,17 +238,6 @@ def remove_jump(self, *, alignment: int = 1) -> None:
239238
) as hole:
240239
# b #4
241240
jump = b"\x00\x00\x00\x14"
242-
case Hole(
243-
offset=offset,
244-
kind="R_X86_64_GOTPCRELX",
245-
value=HoleValue.GOT,
246-
symbol="_JIT_CONTINUE",
247-
addend=addend,
248-
) as hole:
249-
assert _signed(addend) == -4
250-
# jmp qword ptr [rip]
251-
jump = b"\xFF\x25\x00\x00\x00\x00"
252-
offset -= 2
253241
case _:
254242
return
255243
if self.body[offset:] == jump and offset % alignment == 0:

Tools/jit/_targets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,7 @@ def get_target(host: str) -> _COFF | _ELF | _MachO:
513513
args = ["-fms-runtime-lib=dll"]
514514
target = _COFF(host, args=args)
515515
elif re.fullmatch(r"x86_64-.*-linux-gnu", host):
516-
args = ["-fpic"]
516+
args = ["-fno-pic", "-mcmodel=medium", "-mlarge-data-threshold=0"]
517517
target = _ELF(host, args=args)
518518
else:
519519
raise ValueError(host)

0 commit comments

Comments
 (0)