X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2Fcoff64-rs6000.c;h=7185232ce14b6d140354cdf095efb0a8b0b9cd02;hb=e822f2cda9bc484adb5f8860050640a5c6f1ced9;hp=bb546239fc3c32d54265ec55e971367d38f4013d;hpb=2bb3687ba8720558082d1575823868286d7916b5;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c index bb546239fc..7185232ce1 100644 --- a/bfd/coff64-rs6000.c +++ b/bfd/coff64-rs6000.c @@ -155,7 +155,7 @@ static bfd_boolean xcoff64_ppc_relocate_section asection **); static bfd_boolean xcoff64_slurp_armap (bfd *); -static const bfd_target *xcoff64_archive_p +static bfd_cleanup xcoff64_archive_p (bfd *); static bfd *xcoff64_openr_next_archived_file (bfd *, bfd *); @@ -238,7 +238,7 @@ bfd_boolean (*xcoff64_calculate_relocation[XCOFF_MAX_CALCULATE_RELOCATION]) #define coff_bfd_reloc_type_lookup xcoff64_reloc_type_lookup #define coff_bfd_reloc_name_lookup xcoff64_reloc_name_lookup #ifdef AIX_CORE -extern const bfd_target * rs6000coff_core_p +extern bfd_cleanup rs6000coff_core_p (bfd *abfd); extern bfd_boolean rs6000coff_core_file_matches_executable_p (bfd *cbfd, bfd *ebfd); @@ -1249,10 +1249,11 @@ xcoff64_ppc_relocate_section (bfd *output_bfd, { if (info->unresolved_syms_in_objects != RM_IGNORE && (h->flags & XCOFF_WAS_UNDEFINED) != 0) - (*info->callbacks->undefined_symbol) + info->callbacks->undefined_symbol (info, h->root.root.string, input_bfd, input_section, rel->r_vaddr - input_section->vma, - info->unresolved_syms_in_objects == RM_GENERATE_ERROR); + info->unresolved_syms_in_objects == RM_DIAGNOSE + && !info->warn_unresolved_syms); if (h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak) @@ -1933,9 +1934,9 @@ xcoff64_slurp_armap (bfd *abfd) return FALSE; sz = bfd_scan_vma (hdr.size, (const char **) NULL, 10); - if (sz == (bfd_size_type) -1) + if (sz + 1 < 9) { - bfd_set_error (bfd_error_no_memory); + bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -1991,7 +1992,7 @@ xcoff64_slurp_armap (bfd *abfd) /* See if this is an NEW XCOFF archive. */ -static const bfd_target * +static bfd_cleanup xcoff64_archive_p (bfd *abfd) { struct artdata *tdata_hold; @@ -2058,7 +2059,7 @@ xcoff64_archive_p (bfd *abfd) return NULL; } - return abfd->xvec; + return _bfd_no_cleanup; } @@ -2805,7 +2806,7 @@ const bfd_target rs6000_xcoff64_vec = &bfd_xcoff_backend_data, }; -extern const bfd_target *xcoff64_core_p +extern bfd_cleanup xcoff64_core_p (bfd *); extern bfd_boolean xcoff64_core_file_matches_executable_p (bfd *, bfd *);