From 6e7ce2cdd34f7e3ad720e1d43a19635d79ce17b4 Mon Sep 17 00:00:00 2001 From: Paul Brook Date: Tue, 31 May 2011 13:40:04 +0000 Subject: 2011-05-31 Paul Brook Nathan Sidwell gas/ * config/tc-arm.c (fix_new_arm): Create an absolute symbol for pc-relative fixes to constants. * config/tc-arm.h (TC_FORCE_RELOCATATION_ABS): Define. ld/testsuite/ * ld-arm/abs-call-1.d: New. * ld-arm/abs-call-1.s: New. * ld-arm/arm-elf.exp: Add it. --- gas/config/tc-arm.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'gas/config/tc-arm.h') diff --git a/gas/config/tc-arm.h b/gas/config/tc-arm.h index 702e405..2916ae1 100644 --- a/gas/config/tc-arm.h +++ b/gas/config/tc-arm.h @@ -192,6 +192,12 @@ void arm_copy_symbol_attributes (symbolS *, symbolS *); (THUMB_IS_FUNC ((FIX)->fx_addsy) \ || !SEG_NORMAL (SEG)) +#define TC_FORCE_RELOCATION_ABS(FIX) \ + (((FIX)->fx_pcrel \ + && (FIX)->fx_r_type != BFD_RELOC_32 \ + && (FIX)->fx_r_type != BFD_RELOC_ARM_GOT32) \ + || TC_FORCE_RELOCATION(FIX)) + #define TC_CONS_FIX_NEW cons_fix_new_arm #define MAX_MEM_ALIGNMENT_BYTES 6 -- cgit v1.1