aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2002-12-03 11:27:26 +0000
committerAlan Modra <amodra@gmail.com>2002-12-03 11:27:26 +0000
commit61b5f74bdbcdbcd3fdeaf6fdc664cd8570f056e6 (patch)
tree9eb9160333e34abafb00fdaba851bd2b62fd4fc9 /gas/config
parentae831be502bf99bc5da6b755f1d63a4dcea753c9 (diff)
downloadfsf-binutils-gdb-61b5f74bdbcdbcd3fdeaf6fdc664cd8570f056e6.zip
fsf-binutils-gdb-61b5f74bdbcdbcd3fdeaf6fdc664cd8570f056e6.tar.gz
fsf-binutils-gdb-61b5f74bdbcdbcd3fdeaf6fdc664cd8570f056e6.tar.bz2
* config/tc-arm.c (arm_force_relocation): Return 0 for ARM_IMMEDIATE
and ARM_ADRL_IMMEDIATE.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-arm.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index c5f776a..f78f100 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -2129,7 +2129,7 @@ typedef struct literal_pool
symbolS * symbol;
segT section;
subsegT sub_section;
- struct literal_pool * next;
+ struct literal_pool * next;
} literal_pool;
/* Pointer to a linked list of literal pools. */
@@ -2196,7 +2196,7 @@ find_or_make_literal_pool ()
static int
add_to_lit_pool ()
{
- literal_pool * pool;
+ literal_pool * pool;
unsigned int entry;
pool = find_or_make_literal_pool ();
@@ -5796,7 +5796,7 @@ do_ldmstm (str)
as_warn (_("if writeback register is in list, it must be the lowest reg in the list"));
}
}
-
+
inst.instruction |= range;
end_of_line (str);
return;
@@ -10294,7 +10294,7 @@ tc_gen_reloc (section, fixp)
/* If this is called then the a literal has
been referenced across a section boundary. */
as_bad_where (fixp->fx_file, fixp->fx_line,
- _("literal referenced across section boundary"));
+ _("literal referenced across section boundary"));
return NULL;
#ifdef OBJ_ELF
@@ -11526,6 +11526,11 @@ arm_force_relocation (fixp)
|| fixp->fx_r_type == BFD_RELOC_THUMB_PCREL_BRANCH23)
return 1;
+ /* Resolve these relocations even if the symbol is extern or weak. */
+ if (fixp->fx_r_type == BFD_RELOC_ARM_IMMEDIATE
+ || fixp->fx_r_type == BFD_RELOC_ARM_ADRL_IMMEDIATE)
+ return 0;
+
return S_FORCE_RELOC (fixp->fx_addsy);
}