summaryrefslogtreecommitdiff
path: root/arm64-link.c
diff options
context:
space:
mode:
Diffstat (limited to 'arm64-link.c')
-rw-r--r--arm64-link.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arm64-link.c b/arm64-link.c
index 73e503e..59322c5 100644
--- a/arm64-link.c
+++ b/arm64-link.c
@@ -240,6 +240,12 @@ void relocate(TCCState *s1, ElfW_Rel *rel, int type, unsigned char *ptr, addr_t
#endif
write64le(ptr, val - rel->r_addend);
return;
+ case R_AARCH64_RELATIVE:
+#ifdef TCC_TARGET_PE
+ add32le(ptr, val - s1->pe_imagebase);
+#endif
+ /* do nothing */
+ return;
default:
fprintf(stderr, "FIXME: handle reloc type %x at %x [%p] to %x\n",
type, (unsigned)addr, ptr, (unsigned)val);