Spaces:
Sleeping
Sleeping
Commit
·
5bf0310
1
Parent(s):
52b18ab
Print relocs
Browse files
main.py
CHANGED
|
@@ -96,6 +96,18 @@ def compile(compiler, flags, source):
|
|
| 96 |
# Filter out .text
|
| 97 |
json_relocs = [r for r in json_relocs if r["Symbol"]["Name"] != ".text"]
|
| 98 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 99 |
if result.returncode == 0:
|
| 100 |
return json_relocs, compiled_bytes, compile_output, disassembly
|
| 101 |
else:
|
|
|
|
| 96 |
# Filter out .text
|
| 97 |
json_relocs = [r for r in json_relocs if r["Symbol"]["Name"] != ".text"]
|
| 98 |
|
| 99 |
+
def reloc_type2size(s):
|
| 100 |
+
match s:
|
| 101 |
+
case "R_X86_64_PC32":
|
| 102 |
+
return 32
|
| 103 |
+
case "R_X86_64_PLT32":
|
| 104 |
+
return 32
|
| 105 |
+
case _:
|
| 106 |
+
assert False, f"Unknown reloc {s}"
|
| 107 |
+
|
| 108 |
+
relocs = [(r["Offset"], reloc_type2size(r["Type"]["Name"])) for r in json_relocs]
|
| 109 |
+
print(f"relocs: {relocs}")
|
| 110 |
+
|
| 111 |
if result.returncode == 0:
|
| 112 |
return json_relocs, compiled_bytes, compile_output, disassembly
|
| 113 |
else:
|