diff options
author | Nick Clifton <nickc@redhat.com> | 2001-01-11 01:40:18 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2001-01-11 01:40:18 +0000 |
commit | 7a91e76ad19a372bc9f010500c75bd0a85ef7826 (patch) | |
tree | 1f44bbb79084bd1c6960d6ab1a5e6143d56af20e /gas/config | |
parent | aa257fcdbd8bc5816be8bebb39d05dba68de0c95 (diff) | |
download | gdb-7a91e76ad19a372bc9f010500c75bd0a85ef7826.zip gdb-7a91e76ad19a372bc9f010500c75bd0a85ef7826.tar.gz gdb-7a91e76ad19a372bc9f010500c75bd0a85ef7826.tar.bz2 |
Allow ADRL relocs to be adjusted in arm-coff
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-arm.c | 16 | ||||
-rw-r--r-- | gas/config/tc-arm.h | 2 |
2 files changed, 17 insertions, 1 deletions
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index f23cb09..80318fa 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -8537,6 +8537,22 @@ arm_validate_fix (fixP) return false; } +#ifdef OBJ_COFF +/* This is a little hack to help the gas/arm/adrl.s test. It prevents + local labels from being added to the output symbol table when they + are used with the ADRL pseudo op. The ADRL relocation should always + be resolved before the binbary is emitted, so it is safe to say that + it is adjustable. */ + +boolean +arm_fix_adjustable (fixP) + fixS * fixP; +{ + if (fixP->fx_r_type == BFD_RELOC_ARM_ADRL_IMMEDIATE) + return 1; + return 0; +} +#endif #ifdef OBJ_ELF /* Relocations against Thumb function names must be left unadjusted, so that the linker can use this information to correctly set the diff --git a/gas/config/tc-arm.h b/gas/config/tc-arm.h index 365591c..0a823dd 100644 --- a/gas/config/tc-arm.h +++ b/gas/config/tc-arm.h @@ -116,7 +116,7 @@ #define TC_FIX_TYPE PTR #define TC_INIT_FIX_DATA(FIXP) ((FIXP)->tc_fix_data = NULL) -#ifdef OBJ_ELF +#if defined OBJ_ELF || defined OBJ_COFF #include "write.h" /* For definition of fixS */ #define obj_fix_adjustable(fixP) arm_fix_adjustable (fixP) boolean arm_fix_adjustable PARAMS ((fixS *)); |