Skip to content

Commit c94dbcb

Browse files
committed
wip2
Signed-off-by: Hanno Becker <beckphan@amazon.co.uk>
1 parent 9d09443 commit c94dbcb

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

scripts/simpasm

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,10 +191,11 @@ def simplify(logger, args, asm_input, asm_output=None):
191191
# Create temporary object files for byte code before/after simplification
192192
with tempfile.NamedTemporaryFile(
193193
suffix=".o", delete=False
194-
) as tmp0, tempfile.NamedTemporaryFile(suffix=".o", delete=False) as tmp1:
194+
) as tmp0, tempfile.NamedTemporaryFile(suffix=".o", delete=False) as tmp1, tempfile.NamedTemporaryFile(suffix=".o", delete=False) as tmp0_linked:
195195

196196
tmp_objfile0 = tmp0.name
197197
tmp_objfile1 = tmp1.name
198+
tmp_objfile0_linked = tmp0_linked.name
198199

199200
cmd = (
200201
[args.cc, "-c", "-x", "assembler-with-cpp"]
@@ -245,7 +246,11 @@ def simplify(logger, args, asm_input, asm_output=None):
245246
sym = sym_info[2]
246247
logger.debug(f"Using raw global symbol {sym} going forward ...")
247248

248-
cmd = [args.objdump, "--disassemble", tmp_objfile0]
249+
# Link to get rid of potential relocation symbols in the assembly
250+
cmd = [args.cc, "-nostartfiles", "-e", sym_info[2], '-o', tmp_objfile0_linked, tmp_objfile0]
251+
r = run_cmd(cmd)
252+
253+
cmd = [args.objdump, "--disassemble", tmp_objfile0_linked]
249254
if platform.system() == "Darwin" and args.arch == "aarch64":
250255
cmd += ["--triple=aarch64"]
251256

@@ -319,7 +324,7 @@ def simplify(logger, args, asm_input, asm_output=None):
319324
f.write("\n".join(full_simplified))
320325

321326
cmd = (
322-
[args.cc, "-c", "-x", "assembler-with-cpp"]
327+
[args.cc, "-nostartfiles", "-e", sym_info[2], "-x", "assembler-with-cpp"]
323328
+ cflags
324329
+ ["-o", tmp_objfile1, "-"]
325330
)

0 commit comments

Comments
 (0)