@@ -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 :
0 commit comments