[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