@@ -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