summaryrefslogtreecommitdiff
path: root/arm-link.c
diff options
context:
space:
mode:
Diffstat (limited to 'arm-link.c')
-rw-r--r--arm-link.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arm-link.c b/arm-link.c
index aee35af..92a24eb 100644
--- a/arm-link.c
+++ b/arm-link.c
@@ -382,6 +382,12 @@ void relocate(TCCState *s1, ElfW_Rel *rel, int type, unsigned char *ptr, addr_t
/* Nothing to do. Normally used to indicate a dependency
on a certain symbol (like for exception handling under EABI). */
return;
+ case R_ARM_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);