Index: ELF/Writer.cpp =================================================================== --- ELF/Writer.cpp +++ ELF/Writer.cpp @@ -259,6 +259,9 @@ support::endian::write32le(Base + Offset, SymVA + (RI.r_addend - (P + Offset))); break; + case llvm::ELF::R_X86_64_32: + support::endian::write32le(Base + Offset, SymVA + RI.r_addend); + break; default: llvm::errs() << Twine("unrecognized reloc ") + Twine(Type) << '\n'; break; Index: test/elf2/relocation.s =================================================================== --- test/elf2/relocation.s +++ test/elf2/relocation.s @@ -14,4 +14,13 @@ .global lulz lulz: +.global bar +.text +bar: + movl $bar, %edx // R_X86_64_32 + +// R_X86_64_32 +// CHECK: bar: +// CHECK: 1000: ba 00 10 00 00 movl $4096, %edx + // CHECK: e8 04 00 00 00 callq 4