summaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog22
-rw-r--r--bfd/coff-alpha.c4
-rw-r--r--bfd/coff-ia64.c4
-rw-r--r--bfd/coffcode.h2
-rw-r--r--bfd/coffgen.c20
-rw-r--r--bfd/cofflink.c2
-rw-r--r--bfd/elfxx-ia64.c21
-rw-r--r--bfd/format.c6
8 files changed, 61 insertions, 20 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ce7618dbb1..839b7801ef 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,27 @@
2001-08-17 Alan Modra <amodra@bigpond.net.au>
+ * coffcode.h (coff_write_object_contents): Add ATTRIBUTE_UNUSED to
+ silence warning.
+ * coffgen.c (coff_print_symbol): Fix warnings.
+ (coff_find_nearest_line): Likewise.
+ * cofflink.c (_bfd_coff_link_input_bfd): Likewise.
+ * coff-alpha.c (alpha_convert_external_reloc): Likewise.
+ * format.c (bfd_check_format_matches): Likewise.
+ (bfd_set_format): Likewise.
+ * coff-ia64.c: Add missing prototypes.
+ * elf64-alpha.c (struct alpha_elf_link_hash_entry): Make addend
+ signed to silence warnings.
+ (elf64_alpha_relocate_section): Likewise.
+ (elf64_alpha_find_reloc_at_ofs): Fix warnings.
+ (elf64_alpha_add_symbol_hook): Likewise.
+ (elf64_alpha_final_link): Likewise.
+ (elf64_alpha_relax_section): Remove redundant assign to info.gotent.
+ (elf64_alpha_merge_gots): Add ATTRIBUTE_UNUSED to unused args.
+ (elf64_alpha_size_got_sections): Likewise.
+ * elfxx-ia64.c: Add missing prototypes.
+ (elfNN_ia64_relocate_section): Fix warning.
+ (elfNN_ia64_unwind_entry_compare): Make params const.
+
* config.bfd (targ64_selvecs): New.
<powerpc-*-aix* entry>: Use it here instead of ineffectual #ifdef.
diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c
index d0db6a85e3..cad190f597 100644
--- a/bfd/coff-alpha.c
+++ b/bfd/coff-alpha.c
@@ -1334,7 +1334,7 @@ alpha_convert_external_reloc (output_bfd, info, input_bfd, ext_rel, h)
break;
}
- if (r_symndx == -1)
+ if (r_symndx == (unsigned long) -1)
abort ();
/* Add the section VMA and the symbol value. */
@@ -1347,7 +1347,7 @@ alpha_convert_external_reloc (output_bfd, info, input_bfd, ext_rel, h)
/* Change the symndx value to the right one for
the output BFD. */
r_symndx = h->indx;
- if (r_symndx == -1)
+ if (r_symndx == (unsigned long) -1)
{
/* Caller must give an error. */
r_symndx = 0;
diff --git a/bfd/coff-ia64.c b/bfd/coff-ia64.c
index 776d3fac59..8452d96187 100644
--- a/bfd/coff-ia64.c
+++ b/bfd/coff-ia64.c
@@ -52,6 +52,8 @@ static reloc_howto_type howto_table[] =
/* Return true if this relocation should
appear in the output .reloc section. */
+static boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *));
+
static boolean
in_reloc_p(abfd, howto)
bfd * abfd ATTRIBUTE_UNUSED;
@@ -63,6 +65,8 @@ in_reloc_p(abfd, howto)
#include "coffcode.h"
+static const bfd_target *ia64coff_object_p PARAMS ((bfd *));
+
static const bfd_target *
ia64coff_object_p (abfd)
bfd *abfd;
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index 5985404cac..3683fac76f 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -326,7 +326,7 @@ static boolean coff_set_flags
static boolean coff_set_arch_mach
PARAMS ((bfd *, enum bfd_architecture, unsigned long));
static boolean coff_compute_section_file_positions PARAMS ((bfd *));
-static boolean coff_write_object_contents PARAMS ((bfd *));
+static boolean coff_write_object_contents PARAMS ((bfd *)) ATTRIBUTE_UNUSED;
static boolean coff_set_section_contents
PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
static PTR buy_and_read PARAMS ((bfd *, file_ptr, int, size_t));
diff --git a/bfd/coffgen.c b/bfd/coffgen.c
index bd2d158ba5..533b88998a 100644
--- a/bfd/coffgen.c
+++ b/bfd/coffgen.c
@@ -2106,16 +2106,18 @@ coff_print_symbol (abfd, filep, symbol, how)
case C_EXT:
if (ISFCN (combined->u.syment.n_type))
{
+ long next, llnos;
+
+ if (auxp->fix_end)
+ next = (auxp->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.p
+ - root);
+ else
+ next = auxp->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.l;
+ llnos = auxp->u.auxent.x_sym.x_fcnary.x_fcn.x_lnnoptr;
fprintf (file,
_("AUX tagndx %ld ttlsiz 0x%lx lnnos %ld next %ld"),
- tagndx,
- auxp->u.auxent.x_sym.x_misc.x_fsize,
- auxp->u.auxent.x_sym.x_fcnary.x_fcn.x_lnnoptr,
- (auxp->fix_end
- ? ((long)
- (auxp->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.p
- - root))
- : auxp->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.l));
+ tagndx, auxp->u.auxent.x_sym.x_misc.x_fsize,
+ llnos, next);
break;
}
/* else fall through */
@@ -2280,7 +2282,7 @@ coff_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
/* Avoid endless loops on erroneous files by ensuring that
we always move forward in the file. */
- if (p - cof->raw_syments >= p->u.syment.n_value)
+ if (p >= cof->raw_syments + p->u.syment.n_value)
break;
p = cof->raw_syments + p->u.syment.n_value;
diff --git a/bfd/cofflink.c b/bfd/cofflink.c
index e6dcd88edc..7e40bd94a8 100644
--- a/bfd/cofflink.c
+++ b/bfd/cofflink.c
@@ -1829,7 +1829,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
have to write the symbol out twice. */
if (finfo->last_file_index != -1
- && finfo->last_file.n_value != (long) output_index)
+ && finfo->last_file.n_value != (bfd_vma) output_index)
{
/* We must correct the value of the last C_FILE
entry. */
diff --git a/bfd/elfxx-ia64.c b/bfd/elfxx-ia64.c
index 481834bb4d..8aebd81ba6 100644
--- a/bfd/elfxx-ia64.c
+++ b/bfd/elfxx-ia64.c
@@ -161,6 +161,8 @@ static boolean is_unwind_section_name
PARAMS ((const char *));
static boolean elfNN_ia64_section_from_shdr
PARAMS ((bfd *, ElfNN_Internal_Shdr *, char *));
+static boolean elfNN_ia64_section_flags
+ PARAMS ((flagword *, ElfNN_Internal_Shdr *));
static boolean elfNN_ia64_fake_sections
PARAMS ((bfd *abfd, ElfNN_Internal_Shdr *hdr, asection *sec));
static void elfNN_ia64_final_write_processing
@@ -179,6 +181,8 @@ static boolean elfNN_ia64_aix_link_add_symbols
PARAMS ((bfd *abfd, struct bfd_link_info *info));
static int elfNN_ia64_additional_program_headers
PARAMS ((bfd *abfd));
+static boolean elfNN_ia64_modify_segment_map
+ PARAMS ((bfd *));
static boolean elfNN_ia64_is_local_label_name
PARAMS ((bfd *abfd, const char *name));
static boolean elfNN_ia64_dynamic_symbol_p
@@ -192,11 +196,19 @@ static struct bfd_hash_entry *elfNN_ia64_new_loc_hash_entry
static struct bfd_hash_entry *elfNN_ia64_new_elf_hash_entry
PARAMS ((struct bfd_hash_entry *entry, struct bfd_hash_table *table,
const char *string));
+static void elfNN_ia64_hash_copy_indirect
+ PARAMS ((struct elf_link_hash_entry *, struct elf_link_hash_entry *));
+static void elfNN_ia64_hash_hide_symbol
+ PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
static struct bfd_link_hash_table *elfNN_ia64_hash_table_create
PARAMS ((bfd *abfd));
static struct elfNN_ia64_local_hash_entry *elfNN_ia64_local_hash_lookup
PARAMS ((struct elfNN_ia64_local_hash_table *table, const char *string,
boolean create, boolean copy));
+static boolean elfNN_ia64_global_dyn_sym_thunk
+ PARAMS ((struct bfd_hash_entry *, PTR));
+static boolean elfNN_ia64_local_dyn_sym_thunk
+ PARAMS ((struct bfd_hash_entry *, PTR));
static void elfNN_ia64_dyn_sym_traverse
PARAMS ((struct elfNN_ia64_link_hash_table *ia64_info,
boolean (*func) (struct elfNN_ia64_dyn_sym_info *, PTR),
@@ -265,6 +277,8 @@ static bfd_vma set_pltoff_entry
PARAMS ((bfd *abfd, struct bfd_link_info *info,
struct elfNN_ia64_dyn_sym_info *dyn_i,
bfd_vma value, boolean));
+static int elfNN_ia64_unwind_entry_compare
+ PARAMS ((const PTR, const PTR));
static boolean elfNN_ia64_final_link
PARAMS ((bfd *abfd, struct bfd_link_info *info));
static boolean elfNN_ia64_relocate_section
@@ -1723,7 +1737,8 @@ get_dyn_sym_info (ia64_info, h, abfd, rel, create)
len += 10; /* %p slop */
addr_name = alloca (len);
- sprintf (addr_name, "%p:%lx", (void *) abfd, ELFNN_R_SYM (rel->r_info));
+ sprintf (addr_name, "%p:%lx",
+ (void *) abfd, (unsigned long) ELFNN_R_SYM (rel->r_info));
/* Collect the canonical entry data for this address. */
loc_h = elfNN_ia64_local_hash_lookup (&ia64_info->loc_hash_table,
@@ -3188,8 +3203,8 @@ static bfd *elfNN_ia64_unwind_entry_compare_bfd;
static int
elfNN_ia64_unwind_entry_compare (a, b)
- PTR a;
- PTR b;
+ const PTR a;
+ const PTR b;
{
bfd_vma av, bv;
diff --git a/bfd/format.c b/bfd/format.c
index c64b96fe93..eb97be14e9 100644
--- a/bfd/format.c
+++ b/bfd/format.c
@@ -125,8 +125,7 @@ bfd_check_format_matches (abfd, format, matching)
int ar_match_index;
if (!bfd_read_p (abfd)
- || abfd->format < bfd_unknown
- || abfd->format >= bfd_type_end)
+ || (unsigned int) abfd->format >= (unsigned int) bfd_type_end)
{
bfd_set_error (bfd_error_invalid_operation);
return false;
@@ -348,8 +347,7 @@ bfd_set_format (abfd, format)
bfd_format format;
{
if (bfd_read_p (abfd)
- || abfd->format < bfd_unknown
- || abfd->format >= bfd_type_end)
+ || (unsigned int) abfd->format >= (unsigned int) bfd_type_end)
{
bfd_set_error (bfd_error_invalid_operation);
return false;