[lld] r243178 - COFF: Fix base relocation type for x86.

Rui Ueyama ruiu at google.com
Fri Jul 24 16:24:45 PDT 2015


Author: ruiu
Date: Fri Jul 24 18:24:45 2015
New Revision: 243178

URL: http://llvm.org/viewvc/llvm-project?rev=243178&view=rev
Log:
COFF: Fix base relocation type for x86.

Modified:
    lld/trunk/COFF/Chunks.cpp
    lld/trunk/test/COFF/delayimports32.test
    lld/trunk/test/COFF/hello32.test

Modified: lld/trunk/COFF/Chunks.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Chunks.cpp?rev=243178&r1=243177&r2=243178&view=diff
==============================================================================
--- lld/trunk/COFF/Chunks.cpp (original)
+++ lld/trunk/COFF/Chunks.cpp Fri Jul 24 18:24:45 2015
@@ -290,8 +290,10 @@ BaserelChunk::BaserelChunk(uint32_t Page
   write32le(P, Page);
   write32le(P + 4, Data.size());
   P += 8;
+  uint16_t RelTy =
+      Config->is64() ? IMAGE_REL_BASED_DIR64 : IMAGE_REL_BASED_HIGHLOW;
   for (uint32_t *I = Begin; I != End; ++I) {
-    write16le(P, (IMAGE_REL_BASED_DIR64 << 12) | (*I - Page));
+    write16le(P, (RelTy << 12) | (*I - Page));
     P += 2;
   }
 }

Modified: lld/trunk/test/COFF/delayimports32.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/delayimports32.test?rev=243178&r1=243177&r2=243178&view=diff
==============================================================================
--- lld/trunk/test/COFF/delayimports32.test (original)
+++ lld/trunk/test/COFF/delayimports32.test Fri Jul 24 18:24:45 2015
@@ -29,43 +29,43 @@ IMPORT-NEXT: }
 
 BASEREL:      BaseReloc [
 BASEREL-NEXT:   Entry {
-BASEREL-NEXT:     Type: DIR64
+BASEREL-NEXT:     Type: HIGHLOW
 BASEREL-NEXT:     Address: 0x1020
 BASEREL-NEXT:   }
 BASEREL-NEXT:   Entry {
-BASEREL-NEXT:     Type: DIR64
+BASEREL-NEXT:     Type: HIGHLOW
 BASEREL-NEXT:     Address: 0x1028
 BASEREL-NEXT:   }
 BASEREL-NEXT:   Entry {
-BASEREL-NEXT:     Type: DIR64
+BASEREL-NEXT:     Type: HIGHLOW
 BASEREL-NEXT:     Address: 0x2005
 BASEREL-NEXT:   }
 BASEREL-NEXT:   Entry {
-BASEREL-NEXT:     Type: DIR64
+BASEREL-NEXT:     Type: HIGHLOW
 BASEREL-NEXT:     Address: 0x200C
 BASEREL-NEXT:   }
 BASEREL-NEXT:   Entry {
-BASEREL-NEXT:     Type: DIR64
+BASEREL-NEXT:     Type: HIGHLOW
 BASEREL-NEXT:     Address: 0x2022
 BASEREL-NEXT:   }
 BASEREL-NEXT:   Entry {
-BASEREL-NEXT:     Type: DIR64
+BASEREL-NEXT:     Type: HIGHLOW
 BASEREL-NEXT:     Address: 0x2032
 BASEREL-NEXT:   }
 BASEREL-NEXT:   Entry {
-BASEREL-NEXT:     Type: DIR64
+BASEREL-NEXT:     Type: HIGHLOW
 BASEREL-NEXT:     Address: 0x2039
 BASEREL-NEXT:   }
 BASEREL-NEXT:   Entry {
-BASEREL-NEXT:     Type: DIR64
+BASEREL-NEXT:     Type: HIGHLOW
 BASEREL-NEXT:     Address: 0x203E
 BASEREL-NEXT:   }
 BASEREL-NEXT:   Entry {
-BASEREL-NEXT:     Type: DIR64
+BASEREL-NEXT:     Type: HIGHLOW
 BASEREL-NEXT:     Address: 0x204E
 BASEREL-NEXT:   }
 BASEREL-NEXT:   Entry {
-BASEREL-NEXT:     Type: DIR64
+BASEREL-NEXT:     Type: HIGHLOW
 BASEREL-NEXT:     Address: 0x2053
 BASEREL-NEXT:   }
 BASEREL-NEXT: ]

Modified: lld/trunk/test/COFF/hello32.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/hello32.test?rev=243178&r1=243177&r2=243178&view=diff
==============================================================================
--- lld/trunk/test/COFF/hello32.test (original)
+++ lld/trunk/test/COFF/hello32.test Fri Jul 24 18:24:45 2015
@@ -120,11 +120,11 @@ IMPORTS: }
 
 BASEREL: BaseReloc [
 BASEREL:   Entry {
-BASEREL:     Type: DIR64
+BASEREL:     Type: HIGHLOW
 BASEREL:     Address: 0x2005
 BASEREL:   }
 BASEREL:   Entry {
-BASEREL:     Type: DIR64
+BASEREL:     Type: HIGHLOW
 BASEREL:     Address: 0x200C
 BASEREL:   }
 BASEREL: ]





More information about the llvm-commits mailing list