binutils-gdb/ld/testsuite/ld-mmix/pr20125.d
Hans-Peter Nilsson 284d826d9f PR ld/20125, MMIX weak symbols
Weak undefineds with PUSHJ relocs were "lost", causing internal
inconsistencies and an abort.
2017-08-21 03:43:35 +02:00

22 lines
709 B
Makefile

#as: -no-predefined-syms -x -I$srcdir/$subdir
#ld: -m mmo --defsym __.MMIX.start..text=0x80000
#objdump: -dr
# PUSHJ reloc handling was wrong for weak undefined symbols, causing
# internal inconsistencies, leading to a call to abort.
# Note that we don't keep track of which symbols have pushj-stubs, so
# we get one stub each for the two calls to "foo".
.*: file format mmo
Disassembly of section \.text:
0+80000 <(_start|Main)>:
80000: fe000004 get \$0,rJ
80004: f2010004 pushj \$1,80014 <Main\+0x14>
80008: f2010004 pushj \$1,80018 <Main\+0x18>
8000c: f6040000 put rJ,\$0
80010: f8010000 pop 1,0
80014: f1fdfffb jmp 0 <Main-0x80000>
80018: f1fdfffa jmp 0 <Main-0x80000>