From 76e84ed36b55792407793b0811c0722b5ba915b1 Mon Sep 17 00:00:00 2001 From: Joerg Sonnenberger Date: Thu, 15 Jan 2015 17:59:02 +0000 Subject: [PATCH] Support @PLT loads on 32bit x86. llvm-svn: 226182 --- lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp | 3 +++ test/MC/ELF/relocation-386.s | 3 +++ 2 files changed, 6 insertions(+) diff --git a/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp b/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp index be6a8e4a43e..e8b0b4c5826 100644 --- a/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp +++ b/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp @@ -222,6 +222,9 @@ unsigned X86ELFObjectWriter::GetRelocType(const MCValue &Target, case MCSymbolRefExpr::VK_GOT: Type = ELF::R_386_GOT32; break; + case MCSymbolRefExpr::VK_PLT: + Type = ELF::R_386_PLT32; + break; case MCSymbolRefExpr::VK_GOTOFF: Type = ELF::R_386_GOTOFF; break; diff --git a/test/MC/ELF/relocation-386.s b/test/MC/ELF/relocation-386.s index ba12df0d3b6..83c524b9d07 100644 --- a/test/MC/ELF/relocation-386.s +++ b/test/MC/ELF/relocation-386.s @@ -63,6 +63,8 @@ // Relocation 28 (und_symbol-bar2) is of type R_386_PC8 // CHECK-NEXT: 0xA0 R_386_PC8 und_symbol 0x0 // CHECK-NEXT: 0xA3 R_386_GOTOFF und_symbol 0x0 +// Relocation 29 (zed@PLT) is of type R_386_PLT32 and uses the symbol +// CHECK-NEXT: 0xA9 R_386_PLT32 zed 0x0 // CHECK-NEXT: } // CHECK-NEXT: ] @@ -129,6 +131,7 @@ bar2: .byte und_symbol-bar2 leal 1 + und_symbol@GOTOFF, %edi + movl zed@PLT(%eax), %eax .section zedsec,"awT",@progbits zed: