aboutsummaryrefslogtreecommitdiff
path: root/bfd/coff-sh.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2000-03-01 20:39:07 +0000
committerNick Clifton <nickc@redhat.com>2000-03-01 20:39:07 +0000
commit86033394008aa009b3382199efa24b0cfa749862 (patch)
treed69205614c88f833cf46f7f09efe75b8e65ada6f /bfd/coff-sh.c
parent30e28a0e4beb1fae729bf1fd8dcce9074e154b3c (diff)
downloadgdb-86033394008aa009b3382199efa24b0cfa749862.zip
gdb-86033394008aa009b3382199efa24b0cfa749862.tar.gz
gdb-86033394008aa009b3382199efa24b0cfa749862.tar.bz2
Fix building with --enable-targets=all
Diffstat (limited to 'bfd/coff-sh.c')
-rw-r--r--bfd/coff-sh.c30
1 files changed, 23 insertions, 7 deletions
diff --git a/bfd/coff-sh.c b/bfd/coff-sh.c
index de5d657..821fecd 100644
--- a/bfd/coff-sh.c
+++ b/bfd/coff-sh.c
@@ -29,6 +29,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifdef COFF_WITH_PE
#include "coff/pe.h"
+
+#ifndef COFF_IMAGE_WITH_PE
+static boolean sh_align_load_span
+ PARAMS ((bfd *, asection *, bfd_byte *,
+ boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma),
+ PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, boolean *));
+
+#define _bfd_sh_align_load_span sh_align_load_span
+#endif
#endif
#include "libcoff.h"
@@ -41,7 +50,9 @@ static boolean sh_relax_section
PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *));
static boolean sh_relax_delete_bytes
PARAMS ((bfd *, asection *, bfd_vma, int));
+#ifndef COFF_IMAGE_WITH_PE
static const struct sh_opcode *sh_insn_info PARAMS ((unsigned int));
+#endif
static boolean sh_align_loads
PARAMS ((bfd *, asection *, struct internal_reloc *, bfd_byte *, boolean *));
static boolean sh_swap_insns
@@ -402,7 +413,7 @@ get_symbol_value (symbol)
static reloc_howto_type *
coff_sh_rtype_to_howto (abfd, sec, rel, h, sym, addendp)
- bfd * abfd;
+ bfd * abfd ATTRIBUTE_UNUSED;
asection * sec;
struct internal_reloc * rel;
struct coff_link_hash_entry * h;
@@ -1547,7 +1558,7 @@ struct sh_opcode
mask value in the sh_major_opcode structure. */
unsigned short opcode;
/* Flags for this instruction. */
- unsigned short flags;
+ unsigned long flags;
};
/* Flag which appear in the sh_opcode structure. */
@@ -1620,6 +1631,7 @@ struct sh_opcode
#define SETSAS (0x40000)
#define SETSAS_REG(x) USESAS_REG (x)
+#ifndef COFF_IMAGE_WITH_PE
static boolean sh_insn_uses_reg
PARAMS ((unsigned int, const struct sh_opcode *, unsigned int));
static boolean sh_insn_sets_reg
@@ -1638,7 +1650,7 @@ static boolean sh_insns_conflict
static boolean sh_load_use
PARAMS ((unsigned int, const struct sh_opcode *, unsigned int,
const struct sh_opcode *));
-
+#endif
/* The opcode maps. */
#define MAP(a) a, sizeof a / sizeof a[0]
@@ -2101,6 +2113,7 @@ static const struct sh_minor_opcode sh_dsp_opcodef[] =
{ MAP (sh_dsp_opcodef0), 0xfc0d }
};
+#ifndef COFF_IMAGE_WITH_PE
/* Given an instruction, return a pointer to the corresponding
sh_opcode structure. Return NULL if the instruction is not
recognized. */
@@ -2384,7 +2397,6 @@ sh_load_use (i1, op1, i2, op2)
return false;
}
-#ifndef COFF_IMAGE_WITH_PE
/* Try to align loads and stores within a span of memory. This is
called by both the ELF and the COFF sh targets. ABFD and SEC are
the BFD and section we are examining. CONTENTS is the contents of
@@ -2395,6 +2407,9 @@ sh_load_use (i1, op1, i2, op2)
STOP are the range of memory to examine. If a swap is made,
*PSWAPPED is set to true. */
+#ifdef COFF_WITH_PE
+static
+#endif
boolean
_bfd_sh_align_load_span (abfd, sec, contents, swap, relocs,
plabel, label_end, start, stop, pswapped)
@@ -2604,7 +2619,7 @@ _bfd_sh_align_load_span (abfd, sec, contents, swap, relocs,
return true;
}
-#endif
+#endif /* not COFF_IMAGE_WITH_PE */
/* Look for loads and stores which we can align to four byte
boundaries. See the longer comment above sh_relax_section for why
@@ -3112,9 +3127,10 @@ CREATE_BIG_COFF_TARGET_VEC (shcoff_vec, "coff-sh", BFD_IS_RELAXABLE, 0, '_', NUL
CREATE_LITTLE_COFF_TARGET_VEC (TARGET_SYM, TARGET_SHL_NAME, BFD_IS_RELAXABLE,
SEC_CODE | SEC_DATA, '_', NULL);
#else
-CREATE_LITTLE_COFF_TARGET_VEC (TARGET_SYM, TARGET_SHL_NAME, BFD_IS_RELAXABLE, 0, '_', NULL)
+CREATE_LITTLE_COFF_TARGET_VEC (TARGET_SYM, TARGET_SHL_NAME, BFD_IS_RELAXABLE,
+ 0, '_', NULL)
#endif
-
+
#ifndef TARGET_SHL_SYM
/* Some people want versions of the SH COFF target which do not align
to 16 byte boundaries. We implement that by adding a couple of new