svn commit: r272519 - head/contrib/binutils/gas/config

Andrew Turner andrew at FreeBSD.org
Sat Oct 4 13:14:38 UTC 2014


Author: andrew
Date: Sat Oct  4 13:14:37 2014
New Revision: 272519
URL: https://svnweb.freebsd.org/changeset/base/272519

Log:
  Add movw and movt relocations to the list of relocations against function
  names that must nnot be adjusted. This fixes a bug where code such as:
  movw r2, :lower16:symbol
  movt r2, :upper16:symbol
  
  It is common for clang to generate such code when targeting armv7.

Modified:
  head/contrib/binutils/gas/config/tc-arm.c

Modified: head/contrib/binutils/gas/config/tc-arm.c
==============================================================================
--- head/contrib/binutils/gas/config/tc-arm.c	Sat Oct  4 12:46:26 2014	(r272518)
+++ head/contrib/binutils/gas/config/tc-arm.c	Sat Oct  4 13:14:37 2014	(r272519)
@@ -19395,6 +19395,12 @@ arm_fix_adjustable (fixS * fixP)
       || fixP->fx_r_type == BFD_RELOC_ARM_LDR_PC_G0)
     return 0;
 
+  if (fixP->fx_r_type == BFD_RELOC_ARM_MOVW
+      || fixP->fx_r_type == BFD_RELOC_ARM_MOVT
+      || fixP->fx_r_type == BFD_RELOC_ARM_THUMB_MOVW
+      || fixP->fx_r_type == BFD_RELOC_ARM_THUMB_MOVT)
+    return 0;
+
   return 1;
 }
 #endif /* defined (OBJ_ELF) || defined (OBJ_COFF) */


More information about the svn-src-head mailing list