aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf32-m68hc1x.c
diff options
context:
space:
mode:
authorSean Keys <skeys@ipdatasys.com>2012-08-02 20:40:30 +0000
committerSean Keys <skeys@ipdatasys.com>2012-08-02 20:40:30 +0000
commit9a92d0ce3620520f3a4a4d364483b59b5d16ca7b (patch)
tree4bcedafda26b4f56fd4a76fa65e2703178ba7b6d /bfd/elf32-m68hc1x.c
parentb40f514fed16e4b9d155328938ca1a28f73f527b (diff)
downloadfsf-binutils-gdb-9a92d0ce3620520f3a4a4d364483b59b5d16ca7b.zip
fsf-binutils-gdb-9a92d0ce3620520f3a4a4d364483b59b5d16ca7b.tar.gz
fsf-binutils-gdb-9a92d0ce3620520f3a4a4d364483b59b5d16ca7b.tar.bz2
* elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Modified
conditional statment to allow suppression of mismatched bank warning.
Diffstat (limited to 'bfd/elf32-m68hc1x.c')
-rw-r--r--bfd/elf32-m68hc1x.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/bfd/elf32-m68hc1x.c b/bfd/elf32-m68hc1x.c
index 442a411..ef0a9f1 100644
--- a/bfd/elf32-m68hc1x.c
+++ b/bfd/elf32-m68hc1x.c
@@ -918,9 +918,11 @@ elf32_m68hc11_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
struct m68hc11_page_info *pinfo;
const struct elf_backend_data * const ebd = get_elf_backend_data (input_bfd);
struct m68hc11_elf_link_hash_table *htab;
+ unsigned long e_flags;
symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
sym_hashes = elf_sym_hashes (input_bfd);
+ e_flags = elf_elfheader (input_bfd)->e_flags;
htab = m68hc11_elf_hash_table (info);
if (htab == NULL)
@@ -1048,7 +1050,7 @@ elf32_m68hc11_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
a LO8XG. Does not actually check that it was a LO8XG.
Adjusts high and low bytes. */
relocation = phys_addr;
- if ((elf_elfheader (input_bfd)->e_flags & E_M68HC11_XGATE_RAMOFFSET)
+ if ((e_flags & E_M68HC11_XGATE_RAMOFFSET)
&& (relocation >= 0x2000))
relocation += 0xc000; /* HARDCODED RAM offset for XGATE. */
@@ -1162,7 +1164,7 @@ elf32_m68hc11_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
if (m68hc11_addr_is_banked (pinfo, relocation + rel->r_addend)
&& m68hc11_addr_is_banked (pinfo, insn_addr)
- && phys_page != insn_page)
+ && phys_page != insn_page && !(e_flags & E_M68HC11_NO_BANK_WARNING))
{
const char * msg;
char * buf;