From 7600b03f35a0178978e864c17abac9a5f3a24032 Mon Sep 17 00:00:00 2001
From: Michael Matz <matz@suse.de>
Date: Fri, 14 Oct 2016 16:45:37 +0200
Subject: [PATCH] arm64: Support PREL32 relocation

A PC-relative 32bit value is stored.
---
 tccelf.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tccelf.c b/tccelf.c
index 6c540368..f0a32417 100644
--- a/tccelf.c
+++ b/tccelf.c
@@ -791,6 +791,9 @@ ST_FUNC void relocate_section(TCCState *s1, Section *s)
         case R_AARCH64_ABS32:
             write32le(ptr, val);
             break;
+	case R_AARCH64_PREL32:
+	    write32le(ptr, val - addr);
+	    break;
         case R_AARCH64_MOVW_UABS_G0_NC:
             write32le(ptr, ((read32le(ptr) & 0xffe0001f) |
                             (val & 0xffff) << 5));