diff --git a/rts/linker/PEi386.c b/rts/linker/PEi386.c index 9a0105b85b1619bd310099a880d3e704d1191049..e6a4f83ac61b5457e3ed061bb8601b364da6a2e5 100644 --- a/rts/linker/PEi386.c +++ b/rts/linker/PEi386.c @@ -2096,6 +2096,15 @@ ocResolve_PEi386 ( ObjectCode* oc ) *(uint32_t *)pP = (uint32_t)v; break; } + case 14: /* R_X86_64_PC64 (ELF constant 24) - IMAGE_REL_AMD64_SREL32 (PE constant 14) */ + { + /* mingw will emit this for a pc-rel 64 relocation */ + uint64_t A; + checkProddableBlock(oc, pP, 8); + A = *(uint64_t*)pP; + *(uint64_t *)pP = S + A - (intptr_t)pP; + break; + } case 4: /* R_X86_64_PC32 (ELF constant 2) - IMAGE_REL_AMD64_REL32 (PE constant 4) */ { intptr_t v;