Add unaligned check for R_MIPS_PC16.
authorVladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
Mon, 20 Jun 2016 19:06:56 +0000 (12:06 -0700)
committerCary Coutant <ccoutant@gmail.com>
Mon, 20 Jun 2016 19:06:56 +0000 (12:06 -0700)
gold/
        * mips.cc (Mips_relocate_functions::relpc16): Add unaligned check.

gold/ChangeLog
gold/mips.cc

index 6d315c5de98f0e0cc354ecc71d03a8e71449be13..cf8289bba7af0078a7ea83ba6b2e7b8c8577b247 100644 (file)
@@ -1,3 +1,7 @@
+2016-06-20  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
+
+        * mips.cc (Mips_relocate_functions::relpc16): Add unaligned check.
+
 2016-06-20  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
 
        * mips.cc (relocation_needs_la25_stub): Add support for relocs:
index cea0a81abbc0fee9dd76d1062401dbb3f697d3e2..e2b7855bfceeddcb611a46acab951008e6d19cee 100644 (file)
@@ -4690,6 +4690,9 @@ class Mips_relocate_functions : public Relocate_functions<size, big_endian>
     else
       elfcpp::Swap<32, big_endian>::writeval(wv, val);
 
+    if (psymval->value(object, addend) & 3)
+      return This::STATUS_PCREL_UNALIGNED;
+
     return check_overflow<18>(x);
   }