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.
This commit is contained in:
Andrew Turner 2014-10-04 13:14:37 +00:00
parent e3cadfdb32
commit 657be2acf7

View File

@ -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) */