From: Alan Modra Date: Fri, 21 Nov 2025 22:39:12 +0000 (+1030) Subject: copy_private and merge_private functions X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0feda62e049ed6ff2736949e51d81619fe96ff19;p=thirdparty%2Fbinutils-gdb.git copy_private and merge_private functions These are all called via BFD_SEND on the output bfd xvec. Thus there is no need to verify the output bfd flavour. There *is* a need to verify the input bfd flavour. Also of course target specific data shouldn't be accessed until the input target is verified. Tidy these issues in many places. bfd_copy_private_section_data, bfd_copy_private_symbol_data, and bfd_merge_private_bfd_data are macros. Delete prototypes created via synopsis entry in comments. * aout-target.h (MY_bfd_copy_private_section_data): Remove unnecessary output bfd flavour check. * coff-arm.c (coff_arm_merge_private_bfd_data): Likewise. * elf-m10300.c (_bfd_mn10300_elf_merge_private_bfd_data): Likewise. * ecoff.c (_bfd_ecoff_bfd_copy_private_bfd_data): Likewise, and move setup of pointers into target specific data after check. * elf.c (_bfd_elf_copy_private_bfd_data): Likewise. (_bfd_elf_copy_private_symbol_data): Likewise. (copy_private_bfd_data): Remove checks duplicating those done in caller. (_bfd_elf_copy_private_section_data): Remove unnecessary output bfd flavour check. (_bfd_elf_copy_private_header_data): Likewise. * elf32-arc.c (arc_elf_print_private_bfd_data): Likewise. (arc_elf_merge_private_bfd_data): Likewise. * elf32-arm.c (elf32_arm_copy_private_bfd_data): Likewise. (elf32_arm_merge_private_bfd_data): Likewise. * elf32-cr16.c (_bfd_cr16_elf_merge_private_bfd_data): Likewise. * elf32-cris.c (cris_elf_merge_private_bfd_data): Likewise. (cris_elf_merge_private_bfd_data): Likewise. * elf32-csky.c (csky_elf_merge_private_bfd_data): Likewise. * elf32-h8300.c (elf32_h8_merge_private_bfd_data): Likewise. * elf32-lm32.c (lm32_elf_fdpic_copy_private_bfd_data): Likewise. * elf32-m32r.c (m32r_elf_merge_private_bfd_data): Likewise. * elf32-m68hc1x.c (_bfd_m68hc11_elf_merge_private_bfd_data): Likewise. * elf32-m68k.c (elf32_m68k_merge_private_bfd_data): Likewise. * elf32-mcore.c (mcore_elf_merge_private_bfd_data): Likewise. * elf32-nds32.c (nds32_elf_merge_private_bfd_data): Likewise. * elf32-or1k.c (elf32_or1k_merge_private_bfd_data): Likewise, and move setup of pointers into target specific data after check. * elf32-ppc.c (ppc_elf_merge_private_bfd_data): Remove unnecessary output bfd flavour check. * elf32-s390.c (elf32_s390_merge_private_bfd_data): Likewise. * elf32-score.c (s3_elf32_score_merge_private_bfd_data): Likewise, and move check before target specific data accesss. * elf32-sh.c (sh_elf_copy_private_data): Remove unnecessary output bfd flavour check. (sh_elf_merge_private_data): Likewise. * elf32-sparc.c (elf32_sparc_merge_private_bfd_data): Likewise. * elf32-v850.c (v850_elf_merge_private_bfd_data): Likewise. * elf32-vax.c (elf32_vax_merge_private_bfd_data): Likewise. * elf32-visium.c (visium_elf_copy_private_bfd_data): Likewise. * elf32-xtensa.c (elf_xtensa_merge_private_bfd_data): Likewise. * elf64-ia64-vms.c (elf64_ia64_merge_private_bfd_data): Likewise. * elf64-ppc.c (ppc64_elf_merge_private_bfd_data): Likewise. * elf64-s390.c (elf64_s390_merge_private_bfd_data): Likewise. * elf64-sparc.c (elf64_sparc_merge_private_bfd_data): Likewise. * elfnn-aarch64.c (elfNN_aarch64_merge_private_bfd_data): Likewise. * elfnn-ia64.c (elfNN_ia64_merge_private_bfd_data): Likewise. * elfnn-kvx.c (elfNN_kvx_merge_private_bfd_data): Likewise. * elfnn-loongarch.c (elfNN_loongarch_merge_private_bfd_data): Likewise. * elfnn-riscv.c (_bfd_riscv_elf_merge_private_bfd_data): Likewise. * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Likewise. * mach-o.c (bfd_mach_o_bfd_copy_private_section_data): Likewise. (bfd_mach_o_bfd_copy_private_header_data): Likewise. * mmo.c (mmo_bfd_copy_private_bfd_data): Likewise. * peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Likewise. (_bfd_XX_bfd_copy_private_section_data): Likewise. * som.c (som_bfd_copy_private_section_data): Likewise. (som_bfd_copy_private_bfd_data): Likewise. (som_bfd_copy_private_symbol_data): Likewise, and move setup of pointers into target specific data after check. * elf32-bfin.c (elf32_bfin_merge_private_bfd_data): Check input bfd flavour. * elf32-frv.c (frv_elf_merge_private_bfd_data): Likewise. * elf32-iq2000.c (iq2000_elf_merge_private_bfd_data): Likewise. * elf32-m32c.c (m32c_elf_merge_private_bfd_data): Likewise. * elf32-mep.c (mep_elf_merge_private_bfd_data): Likewise. * elf32-rl78.c (rl78_elf_merge_private_bfd_data): Likewise. * elf32-rx.c (rx_elf_merge_private_bfd_data): Likewise. * elf32-score7.c (s7_elf32_score_merge_private_bfd_data): Likewise. * elf32-tic6x.c (elf32_tic6x_merge_private_bfd_data): Likewise. * elf32-v850.c (v850_elf_copy_notes): Likewise. * elf32-visium.c (visium_elf_merge_private_bfd_data): Likewise. * mach-o.c (bfd_mach_o_bfd_copy_private_symbol_data): Likewise. * linker.c (bfd_merge_private_bfd_data): Delete SYNOPSIS. * section.c (bfd_copy_private_section_data): Likewise. * syms.c (bfd_copy_private_symbol_data): Likewise. * bfd-in2.h: Regenerate. --- diff --git a/bfd/aout-target.h b/bfd/aout-target.h index 229e90b0175..046b1a947cf 100644 --- a/bfd/aout-target.h +++ b/bfd/aout-target.h @@ -218,8 +218,7 @@ MY_bfd_copy_private_section_data (bfd *ibfd, struct bfd_link_info *link_info) { if (link_info == NULL - && bfd_get_flavour (ibfd) == bfd_target_aout_flavour - && bfd_get_flavour (obfd) == bfd_target_aout_flavour) + && bfd_get_flavour (ibfd) == bfd_target_aout_flavour) obj_aout_subformat (obfd) = obj_aout_subformat (ibfd); return true; } diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 4858fef4b1e..645c884bdb8 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1045,10 +1045,6 @@ bool bfd_get_section_contents bool bfd_malloc_and_get_section (bfd *abfd, asection *section, bfd_byte **buf); -bool bfd_copy_private_section_data - (bfd *ibfd, asection *isec, bfd *obfd, asection *osec, - struct bfd_link_info *link_info); - #define bfd_copy_private_section_data(ibfd, isec, obfd, osec, link_info) \ BFD_SEND (obfd, _bfd_copy_private_section_data, \ (ibfd, isec, obfd, osec, link_info)) @@ -1272,9 +1268,6 @@ bool bfd_is_undefined_symclass (int symclass); void bfd_symbol_info (asymbol *symbol, symbol_info *ret); -bool bfd_copy_private_symbol_data - (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym); - #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \ BFD_SEND (obfd, _bfd_copy_private_symbol_data, \ (ibfd, isymbol, obfd, osymbol)) @@ -2996,9 +2989,6 @@ bool bfd_link_check_relocs bool _bfd_generic_link_check_relocs (bfd *abfd, struct bfd_link_info *info); -bool bfd_merge_private_bfd_data - (bfd *ibfd, struct bfd_link_info *info); - #define bfd_merge_private_bfd_data(ibfd, info) \ BFD_SEND ((info)->output_bfd, _bfd_merge_private_bfd_data, \ (ibfd, info)) diff --git a/bfd/coff-arm.c b/bfd/coff-arm.c index babb1b23a63..87cea09ca62 100644 --- a/bfd/coff-arm.c +++ b/bfd/coff-arm.c @@ -2193,8 +2193,7 @@ coff_arm_merge_private_bfd_data (bfd * ibfd, struct bfd_link_info *info) /* If the two formats are different we cannot merge anything. This is not an error, since it is permissable to change the input and output formats. */ - if ( ibfd->xvec->flavour != bfd_target_coff_flavour - || obfd->xvec->flavour != bfd_target_coff_flavour) + if (ibfd->xvec->flavour != bfd_target_coff_flavour) return true; /* Determine what should happen if the input ARM architecture diff --git a/bfd/ecoff.c b/bfd/ecoff.c index 37cfa4a84a4..2af4519422b 100644 --- a/bfd/ecoff.c +++ b/bfd/ecoff.c @@ -1835,8 +1835,6 @@ _bfd_ecoff_find_nearest_line (bfd *abfd, bool _bfd_ecoff_bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd) { - struct ecoff_debug_info *iinfo = &ecoff_data (ibfd)->debug_info; - struct ecoff_debug_info *oinfo = &ecoff_data (obfd)->debug_info; int i; asymbol **sym_ptr_ptr; size_t c; @@ -1844,8 +1842,7 @@ _bfd_ecoff_bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd) /* We only want to copy information over if both BFD's use ECOFF format. */ - if (bfd_get_flavour (ibfd) != bfd_target_ecoff_flavour - || bfd_get_flavour (obfd) != bfd_target_ecoff_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_ecoff_flavour) return true; /* Copy the GP value and the register masks. */ @@ -1856,6 +1853,8 @@ _bfd_ecoff_bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd) ecoff_data (obfd)->cprmask[i] = ecoff_data (ibfd)->cprmask[i]; /* Copy the version stamp. */ + struct ecoff_debug_info *iinfo = &ecoff_data (ibfd)->debug_info; + struct ecoff_debug_info *oinfo = &ecoff_data (obfd)->debug_info; oinfo->symbolic_header.vstamp = iinfo->symbolic_header.vstamp; /* If there are no symbols, don't copy any debugging information. */ diff --git a/bfd/elf-m10300.c b/bfd/elf-m10300.c index b5babd23991..c2ed6e87a91 100644 --- a/bfd/elf-m10300.c +++ b/bfd/elf-m10300.c @@ -4707,8 +4707,7 @@ _bfd_mn10300_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) { bfd *obfd = info->output_bfd; - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; if (bfd_get_arch (obfd) == bfd_get_arch (ibfd) diff --git a/bfd/elf.c b/bfd/elf.c index bf50fc21f95..fff7e83fd34 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -1379,14 +1379,12 @@ copy_special_section_fields (const bfd *ibfd, bool _bfd_elf_copy_private_bfd_data (bfd *ibfd, bfd *obfd) { - const Elf_Internal_Shdr **iheaders - = (const Elf_Internal_Shdr **) elf_elfsections (ibfd); - Elf_Internal_Shdr **oheaders = elf_elfsections (obfd); + const Elf_Internal_Shdr **iheaders; + Elf_Internal_Shdr **oheaders; const struct elf_backend_data *bed; unsigned int i; - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; if (!elf_flags_init (obfd)) @@ -1409,6 +1407,8 @@ _bfd_elf_copy_private_bfd_data (bfd *ibfd, bfd *obfd) /* Copy object attributes. */ _bfd_elf_copy_obj_attributes (ibfd, obfd); + iheaders = (const Elf_Internal_Shdr **) elf_elfsections (ibfd); + oheaders = elf_elfsections (obfd); if (iheaders == NULL || oheaders == NULL) return true; @@ -8315,10 +8315,6 @@ copy_private_bfd_data (bfd *ibfd, bfd *obfd) { bfd_vma maxpagesize; - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; - if (elf_tdata (ibfd)->phdr == NULL) return true; @@ -8452,12 +8448,11 @@ copy_private_bfd_data (bfd *ibfd, bfd *obfd) bool _bfd_elf_copy_private_section_data (bfd *ibfd, asection *isec, - bfd *obfd, + bfd *obfd ATTRIBUTE_UNUSED, asection *osec, struct bfd_link_info *link_info) { - if (ibfd->xvec->flavour != bfd_target_elf_flavour - || obfd->xvec->flavour != bfd_target_elf_flavour) + if (ibfd->xvec->flavour != bfd_target_elf_flavour) return true; Elf_Internal_Shdr *ihdr = &elf_section_data (isec)->this_hdr; @@ -8659,8 +8654,7 @@ _bfd_elf_fixup_group_sections (bfd *ibfd, asection *discarded) bool _bfd_elf_copy_private_header_data (bfd *ibfd, bfd *obfd) { - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; /* Copy over private BFD data if it has not already been copied. @@ -8692,18 +8686,14 @@ _bfd_elf_copy_private_header_data (bfd *ibfd, bfd *obfd) bool _bfd_elf_copy_private_symbol_data (bfd *ibfd, asymbol *isymarg, - bfd *obfd, + bfd *obfd ATTRIBUTE_UNUSED, asymbol *osymarg) { - elf_symbol_type *isym, *osym; - - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; - isym = elf_symbol_from (isymarg); - osym = elf_symbol_from (osymarg); - + elf_symbol_type *isym = elf_symbol_from (isymarg); + elf_symbol_type *osym = elf_symbol_from (osymarg); if (isym != NULL && isym->internal_elf_sym.st_shndx != 0 && osym != NULL diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c index 5f6e9b41841..ee68cfd530c 100644 --- a/bfd/elf32-arc.c +++ b/bfd/elf32-arc.c @@ -485,8 +485,7 @@ arc_elf_print_private_bfd_data (bfd *abfd, void * ptr) static bool arc_elf_copy_private_bfd_data (bfd *ibfd, bfd *obfd) { - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; BFD_ASSERT (!elf_flags_init (obfd) @@ -868,8 +867,7 @@ arc_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) if (! _bfd_generic_verify_endian_match (ibfd, info)) return false; - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; /* Collect ELF flags. */ diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index b1426e1744c..045837d5c42 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -13886,7 +13886,7 @@ elf32_arm_copy_private_bfd_data (bfd *ibfd, bfd *obfd) flagword in_flags; flagword out_flags; - if (! is_arm_elf (ibfd) || ! is_arm_elf (obfd)) + if (! is_arm_elf (ibfd)) return true; in_flags = elf_elfheader (ibfd)->e_flags; @@ -20412,7 +20412,7 @@ elf32_arm_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) if (! _bfd_generic_verify_endian_match (ibfd, info)) return false; - if (! is_arm_elf (ibfd) || ! is_arm_elf (obfd)) + if (! is_arm_elf (ibfd)) return true; if (!elf32_arm_merge_eabi_attributes (ibfd, info)) diff --git a/bfd/elf32-bfin.c b/bfd/elf32-bfin.c index 4da3e0ec0e7..a3f66ab138e 100644 --- a/bfd/elf32-bfin.c +++ b/bfd/elf32-bfin.c @@ -4759,6 +4759,9 @@ elf32_bfin_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) if ((ibfd->flags & DYNAMIC) != 0) return true; + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) + return true; + new_flags = elf_elfheader (ibfd)->e_flags; old_flags = elf_elfheader (obfd)->e_flags; diff --git a/bfd/elf32-cr16.c b/bfd/elf32-cr16.c index df3771bda89..9ddf654078c 100644 --- a/bfd/elf32-cr16.c +++ b/bfd/elf32-cr16.c @@ -1674,8 +1674,7 @@ _bfd_cr16_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) { bfd *obfd = info->output_bfd; - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; if (bfd_get_arch (obfd) == bfd_get_arch (ibfd) diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c index cb88725cc50..7d90b836e35 100644 --- a/bfd/elf32-cris.c +++ b/bfd/elf32-cris.c @@ -3886,8 +3886,7 @@ cris_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) if (! _bfd_generic_verify_endian_match (ibfd, info)) return false; - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; imach = bfd_get_mach (ibfd); @@ -3958,8 +3957,7 @@ cris_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) static bool cris_elf_copy_private_bfd_data (bfd *ibfd, bfd *obfd) { - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; /* Call the base function. */ diff --git a/bfd/elf32-csky.c b/bfd/elf32-csky.c index 9ab0f49f434..e49f8b36355 100644 --- a/bfd/elf32-csky.c +++ b/bfd/elf32-csky.c @@ -3035,8 +3035,7 @@ csky_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) if (! _bfd_generic_verify_endian_match (ibfd, info)) return false; - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; /* Merge ".csky.attribute" section. */ diff --git a/bfd/elf32-frv.c b/bfd/elf32-frv.c index baeb8ba3378..7dd354b8eac 100644 --- a/bfd/elf32-frv.c +++ b/bfd/elf32-frv.c @@ -6339,6 +6339,9 @@ frv_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) if ((ibfd->flags & DYNAMIC) != 0) return true; + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) + return true; + new_opt[0] = old_opt[0] = '\0'; new_flags = elf_elfheader (ibfd)->e_flags; old_flags = elf_elfheader (obfd)->e_flags; diff --git a/bfd/elf32-h8300.c b/bfd/elf32-h8300.c index e183577fca4..4e6649a2dbb 100644 --- a/bfd/elf32-h8300.c +++ b/bfd/elf32-h8300.c @@ -647,8 +647,7 @@ elf32_h8_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) { bfd *obfd = info->output_bfd; - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; if (bfd_get_arch (obfd) == bfd_get_arch (ibfd) diff --git a/bfd/elf32-iq2000.c b/bfd/elf32-iq2000.c index d4d7188aa0a..4b094d22814 100644 --- a/bfd/elf32-iq2000.c +++ b/bfd/elf32-iq2000.c @@ -777,6 +777,9 @@ iq2000_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) char new_opt[80]; char old_opt[80]; + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) + return true; + new_opt[0] = old_opt[0] = '\0'; new_flags = elf_elfheader (ibfd)->e_flags; old_flags = elf_elfheader (obfd)->e_flags; diff --git a/bfd/elf32-lm32.c b/bfd/elf32-lm32.c index f8568d76ed1..ec916aaf1b4 100644 --- a/bfd/elf32-lm32.c +++ b/bfd/elf32-lm32.c @@ -2332,15 +2332,13 @@ lm32_elf_fdpic_copy_private_bfd_data (bfd *ibfd, bfd *obfd) { unsigned i; - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; if (! _bfd_elf_copy_private_bfd_data (ibfd, obfd)) return false; - if (! elf_tdata (ibfd) || ! elf_tdata (ibfd)->phdr - || ! elf_tdata (obfd) || ! elf_tdata (obfd)->phdr) + if (! elf_tdata (ibfd)->phdr || ! elf_tdata (obfd)->phdr) return true; /* Copy the stack size. */ diff --git a/bfd/elf32-m32c.c b/bfd/elf32-m32c.c index 8f6881bcb0b..93cd2d525d9 100644 --- a/bfd/elf32-m32c.c +++ b/bfd/elf32-m32c.c @@ -821,6 +821,9 @@ m32c_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) char new_opt[80]; char old_opt[80]; + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) + return true; + new_opt[0] = old_opt[0] = '\0'; new_flags = elf_elfheader (ibfd)->e_flags; old_flags = elf_elfheader (obfd)->e_flags; diff --git a/bfd/elf32-m32r.c b/bfd/elf32-m32r.c index 5444ddaa127..f21939bf774 100644 --- a/bfd/elf32-m32r.c +++ b/bfd/elf32-m32r.c @@ -3237,8 +3237,7 @@ m32r_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) flagword out_flags; flagword in_flags; - if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; in_flags = elf_elfheader (ibfd)->e_flags; diff --git a/bfd/elf32-m68hc1x.c b/bfd/elf32-m68hc1x.c index 7e8e0383717..b9e20eef068 100644 --- a/bfd/elf32-m68hc1x.c +++ b/bfd/elf32-m68hc1x.c @@ -1325,8 +1325,7 @@ _bfd_m68hc11_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) if (!_bfd_generic_verify_endian_match (ibfd, info)) return false; - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; new_flags = elf_elfheader (ibfd)->e_flags; diff --git a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c index b1147ad7d9f..41bc5aef0aa 100644 --- a/bfd/elf32-m68k.c +++ b/bfd/elf32-m68k.c @@ -1190,8 +1190,7 @@ elf32_m68k_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) flagword in_isa; const bfd_arch_info_type *arch_info; - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) /* PR 24523: For non-ELF files do not try to merge any private data, but also do not prevent the link from succeeding. */ return true; diff --git a/bfd/elf32-mcore.c b/bfd/elf32-mcore.c index 96e921ef64d..4c916fc68e9 100644 --- a/bfd/elf32-mcore.c +++ b/bfd/elf32-mcore.c @@ -59,8 +59,7 @@ mcore_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) if (! _bfd_generic_verify_endian_match (ibfd, info)) return false; - if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; new_flags = elf_elfheader (ibfd)->e_flags; diff --git a/bfd/elf32-mep.c b/bfd/elf32-mep.c index 0188fd04f25..58b4cd05d16 100644 --- a/bfd/elf32-mep.c +++ b/bfd/elf32-mep.c @@ -580,6 +580,9 @@ mep_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) if (!_bfd_generic_verify_endian_match (ibfd, info)) return false; + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) + return true; + new_flags = elf_elfheader (ibfd)->e_flags; old_flags = elf_elfheader (obfd)->e_flags; diff --git a/bfd/elf32-nds32.c b/bfd/elf32-nds32.c index 02c6ced7e1f..2341939e2a7 100644 --- a/bfd/elf32-nds32.c +++ b/bfd/elf32-nds32.c @@ -6731,8 +6731,7 @@ nds32_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) if (!nds32_check_vec_size (ibfd)) return false; - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; if (bfd_little_endian (ibfd) != bfd_little_endian (obfd)) diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 0f315184310..10abd878c1c 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -3290,13 +3290,12 @@ elf32_or1k_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) flagword out_flags; flagword in_flags; + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) + return true; + in_flags = elf_elfheader (ibfd)->e_flags; out_flags = elf_elfheader (obfd)->e_flags; - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; - if (!elf_flags_init (obfd)) { elf_flags_init (obfd) = true; diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index f95f7a9c1b5..dd094357c1c 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -3765,7 +3765,7 @@ ppc_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) flagword new_flags; bool error; - if (!is_ppc_elf (ibfd) || !is_ppc_elf (obfd)) + if (!is_ppc_elf (ibfd)) return true; /* Check if we have the same endianness. */ diff --git a/bfd/elf32-rl78.c b/bfd/elf32-rl78.c index 98131e0cd84..b44fabbcdbe 100644 --- a/bfd/elf32-rl78.c +++ b/bfd/elf32-rl78.c @@ -1186,6 +1186,9 @@ rl78_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) flagword old_flags; bool error = false; + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) + return true; + new_flags = elf_elfheader (ibfd)->e_flags; old_flags = elf_elfheader (obfd)->e_flags; diff --git a/bfd/elf32-rx.c b/bfd/elf32-rx.c index 5c8921e27c4..5bd21456a60 100644 --- a/bfd/elf32-rx.c +++ b/bfd/elf32-rx.c @@ -3138,6 +3138,9 @@ rx_elf_merge_private_bfd_data (bfd * ibfd, struct bfd_link_info *info) flagword new_flags; bool error = false; + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) + return true; + new_flags = elf_elfheader (ibfd)->e_flags; old_flags = elf_elfheader (obfd)->e_flags; diff --git a/bfd/elf32-s390.c b/bfd/elf32-s390.c index 252ec44f409..b53d1a49dd3 100644 --- a/bfd/elf32-s390.c +++ b/bfd/elf32-s390.c @@ -3884,7 +3884,7 @@ elf32_s390_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) { bfd *obfd = info->output_bfd; - if (!is_s390_elf (ibfd) || !is_s390_elf (obfd)) + if (!is_s390_elf (ibfd)) return true; if (!elf_s390_merge_obj_attributes (ibfd, info)) diff --git a/bfd/elf32-score.c b/bfd/elf32-score.c index 624b8a8b591..7084e4d9f4f 100644 --- a/bfd/elf32-score.c +++ b/bfd/elf32-score.c @@ -4012,13 +4012,12 @@ s3_elf32_score_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) if ((ibfd->flags & DYNAMIC) != 0) return true; + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) + return true; + in_flags = elf_elfheader (ibfd)->e_flags; out_flags = elf_elfheader (obfd)->e_flags; - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; - in_flags = elf_elfheader (ibfd)->e_flags; out_flags = elf_elfheader (obfd)->e_flags; diff --git a/bfd/elf32-score7.c b/bfd/elf32-score7.c index a586831ec9f..eb8b1eb15aa 100644 --- a/bfd/elf32-score7.c +++ b/bfd/elf32-score7.c @@ -3819,6 +3819,9 @@ s7_elf32_score_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) if ((ibfd->flags & DYNAMIC) != 0) return true; + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) + return true; + in_flags = elf_elfheader (ibfd)->e_flags; out_flags = elf_elfheader (obfd)->e_flags; diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c index f4efd7bba7c..da00593e96d 100644 --- a/bfd/elf32-sh.c +++ b/bfd/elf32-sh.c @@ -5797,7 +5797,7 @@ sh_elf_get_flags_from_mach (unsigned long mach) static bool sh_elf_copy_private_data (bfd * ibfd, bfd * obfd) { - if (! is_sh_elf (ibfd) || ! is_sh_elf (obfd)) + if (! is_sh_elf (ibfd)) return true; if (! _bfd_elf_copy_private_bfd_data (ibfd, obfd)) @@ -5884,7 +5884,7 @@ sh_elf_merge_private_data (bfd *ibfd, struct bfd_link_info *info) if ((ibfd->flags & DYNAMIC) != 0) return true; - if (! is_sh_elf (ibfd) || ! is_sh_elf (obfd)) + if (! is_sh_elf (ibfd)) return true; if (! elf_flags_init (obfd)) diff --git a/bfd/elf32-sparc.c b/bfd/elf32-sparc.c index 0bb86f1c4b5..99729eae2d3 100644 --- a/bfd/elf32-sparc.c +++ b/bfd/elf32-sparc.c @@ -75,8 +75,7 @@ elf32_sparc_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) /* FIXME: This should not be static. */ static unsigned long previous_ibfd_e_flags = (unsigned long) -1; - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; error = false; diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c index eb980f9268c..81ca6057e44 100644 --- a/bfd/elf32-tic6x.c +++ b/bfd/elf32-tic6x.c @@ -3790,7 +3790,7 @@ elf32_tic6x_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) if (!_bfd_generic_verify_endian_match (ibfd, info)) return false; - if (! is_tic6x_elf (ibfd) || ! is_tic6x_elf (info->output_bfd)) + if (! is_tic6x_elf (ibfd)) return true; if (!elf32_tic6x_merge_attributes (ibfd, info)) diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c index 5f9a8f64a3f..2ba734a9b80 100644 --- a/bfd/elf32-v850.c +++ b/bfd/elf32-v850.c @@ -2458,7 +2458,8 @@ v850_elf_copy_notes (bfd *ibfd, bfd *obfd) bfd_byte * icont; bfd_byte * ocont; - if ((icont = elf_section_data (inotes)->this_hdr.contents) == NULL) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour + || (icont = elf_section_data (inotes)->this_hdr.contents) == NULL) BFD_ASSERT (bfd_malloc_and_get_section (ibfd, inotes, & icont)); if ((ocont = elf_section_data (onotes)->this_hdr.contents) == NULL) @@ -2786,8 +2787,7 @@ v850_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) flagword in_flags; bool result = true; - if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; result &= v850_elf_merge_notes (ibfd, obfd); diff --git a/bfd/elf32-vax.c b/bfd/elf32-vax.c index aa21c74b3f9..8d5c18d00f8 100644 --- a/bfd/elf32-vax.c +++ b/bfd/elf32-vax.c @@ -502,8 +502,7 @@ elf32_vax_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) bfd *obfd = info->output_bfd; flagword in_flags; - if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; in_flags = elf_elfheader (ibfd)->e_flags; diff --git a/bfd/elf32-visium.c b/bfd/elf32-visium.c index 0475a029d8c..dfc69b2634e 100644 --- a/bfd/elf32-visium.c +++ b/bfd/elf32-visium.c @@ -743,8 +743,7 @@ visium_elf_set_private_flags (bfd *abfd, flagword flags) static bool visium_elf_copy_private_bfd_data (bfd *ibfd, bfd *obfd) { - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; BFD_ASSERT (!elf_flags_init (obfd) @@ -779,6 +778,9 @@ visium_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) const char *mcm24 = "mcm24"; const char *gr6 = "gr6"; + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) + return true; + new_flags = elf_elfheader (ibfd)->e_flags; old_flags = elf_elfheader (obfd)->e_flags; diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c index c2be35eb4b7..20b6292c14e 100644 --- a/bfd/elf32-xtensa.c +++ b/bfd/elf32-xtensa.c @@ -3419,8 +3419,7 @@ elf_xtensa_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) return false; /* Don't even pretend to support mixed-format linking. */ - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return false; out_flag = elf_elfheader (obfd)->e_flags; diff --git a/bfd/elf64-ia64-vms.c b/bfd/elf64-ia64-vms.c index 8f80a92e23f..538b7237c6b 100644 --- a/bfd/elf64-ia64-vms.c +++ b/bfd/elf64-ia64-vms.c @@ -4226,8 +4226,7 @@ elf64_ia64_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) return true; /* Don't even pretend to support mixed-format linking. */ - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return false; in_flags = elf_elfheader (ibfd)->e_flags; diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index b01b5fc7c83..818609142ef 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -5476,7 +5476,7 @@ ppc64_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) if ((ibfd->flags & BFD_LINKER_CREATED) != 0) return true; - if (!is_ppc64_elf (ibfd) || !is_ppc64_elf (obfd)) + if (!is_ppc64_elf (ibfd)) return true; if (!_bfd_generic_verify_endian_match (ibfd, info)) diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c index 6394f27e0e2..5df77f2fe88 100644 --- a/bfd/elf64-s390.c +++ b/bfd/elf64-s390.c @@ -4188,7 +4188,7 @@ elf_s390_plt_sym_val (bfd_vma i, const asection *plt, static bool elf64_s390_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) { - if (!is_s390_elf (ibfd) || !is_s390_elf (info->output_bfd)) + if (!is_s390_elf (ibfd)) return true; return elf_s390_merge_obj_attributes (ibfd, info); diff --git a/bfd/elf64-sparc.c b/bfd/elf64-sparc.c index 4a0126ef69b..dfe4f1b7c18 100644 --- a/bfd/elf64-sparc.c +++ b/bfd/elf64-sparc.c @@ -672,8 +672,7 @@ elf64_sparc_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) flagword new_flags, old_flags; int new_mm, old_mm; - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) return true; new_flags = elf_elfheader (ibfd)->e_flags; diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c index 60bc946d196..89cf50bf2a7 100644 --- a/bfd/elfnn-aarch64.c +++ b/bfd/elfnn-aarch64.c @@ -7499,7 +7499,7 @@ elfNN_aarch64_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) if (!_bfd_generic_verify_endian_match (ibfd, info)) return false; - if (!is_aarch64_elf (ibfd) || !is_aarch64_elf (obfd)) + if (!is_aarch64_elf (ibfd)) return true; /* The input BFD must have had its flags initialised. */ diff --git a/bfd/elfnn-ia64.c b/bfd/elfnn-ia64.c index abee1516505..e0c3a8c9428 100644 --- a/bfd/elfnn-ia64.c +++ b/bfd/elfnn-ia64.c @@ -4704,7 +4704,7 @@ elfNN_ia64_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) if ((ibfd->flags & DYNAMIC) != 0) return true; - if (!is_ia64_elf (ibfd) || !is_ia64_elf (obfd)) + if (!is_ia64_elf (ibfd)) return true; in_flags = elf_elfheader (ibfd)->e_flags; diff --git a/bfd/elfnn-kvx.c b/bfd/elfnn-kvx.c index fb71a5bc962..853ccfd0e95 100644 --- a/bfd/elfnn-kvx.c +++ b/bfd/elfnn-kvx.c @@ -2889,7 +2889,7 @@ elfNN_kvx_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) if (!_bfd_generic_verify_endian_match (ibfd, info)) return false; - if (!is_kvx_elf (ibfd) || !is_kvx_elf (obfd)) + if (!is_kvx_elf (ibfd)) return true; /* The input BFD must have had its flags initialised. */ diff --git a/bfd/elfnn-loongarch.c b/bfd/elfnn-loongarch.c index bac9bf6849c..4abfd80fd47 100644 --- a/bfd/elfnn-loongarch.c +++ b/bfd/elfnn-loongarch.c @@ -529,7 +529,7 @@ elfNN_loongarch_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) flagword in_flags = elf_elfheader (ibfd)->e_flags; flagword out_flags = elf_elfheader (obfd)->e_flags; - if (!is_loongarch_elf (ibfd) || !is_loongarch_elf (obfd)) + if (!is_loongarch_elf (ibfd)) return true; if (strcmp (bfd_get_target (ibfd), bfd_get_target (obfd)) != 0) diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c index dd5268b7d16..a6bb6cfb589 100644 --- a/bfd/elfnn-riscv.c +++ b/bfd/elfnn-riscv.c @@ -4380,7 +4380,7 @@ _bfd_riscv_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) bfd *obfd = info->output_bfd; flagword new_flags, old_flags; - if (!is_riscv_elf (ibfd) || !is_riscv_elf (obfd)) + if (!is_riscv_elf (ibfd)) return true; if (strcmp (bfd_get_target (ibfd), bfd_get_target (obfd)) != 0) diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 4460531e584..b8809a4b1da 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -15987,7 +15987,7 @@ _bfd_mips_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) return false; } - if (!is_mips_elf (ibfd) || !is_mips_elf (obfd)) + if (!is_mips_elf (ibfd)) return true; in_tdata = mips_elf_tdata (ibfd); diff --git a/bfd/linker.c b/bfd/linker.c index 6e2ef059b52..247c259a95e 100644 --- a/bfd/linker.c +++ b/bfd/linker.c @@ -3502,10 +3502,6 @@ _bfd_generic_link_check_relocs (bfd *abfd ATTRIBUTE_UNUSED, FUNCTION bfd_merge_private_bfd_data -SYNOPSIS - bool bfd_merge_private_bfd_data - (bfd *ibfd, struct bfd_link_info *info); - DESCRIPTION Merge private BFD information from the BFD @var{ibfd} to the the output file BFD when linking. Return <> on success, diff --git a/bfd/mach-o.c b/bfd/mach-o.c index cc191b9ef1e..e184ba7b5df 100644 --- a/bfd/mach-o.c +++ b/bfd/mach-o.c @@ -561,15 +561,16 @@ bfd_mach_o_append_command (bfd *abfd, bfd_mach_o_load_command *cmd) to the output symbol. */ bool -bfd_mach_o_bfd_copy_private_symbol_data (bfd *ibfd ATTRIBUTE_UNUSED, +bfd_mach_o_bfd_copy_private_symbol_data (bfd *ibfd, asymbol *isymbol, bfd *obfd ATTRIBUTE_UNUSED, asymbol *osymbol) { - bfd_mach_o_asymbol *os, *is; + if (ibfd->xvec->flavour != bfd_target_mach_o_flavour) + return true; - os = (bfd_mach_o_asymbol *)osymbol; - is = (bfd_mach_o_asymbol *)isymbol; + bfd_mach_o_asymbol *os = (bfd_mach_o_asymbol *) osymbol; + bfd_mach_o_asymbol *is = (bfd_mach_o_asymbol *) isymbol; os->n_type = is->n_type; os->n_sect = is->n_sect; os->n_desc = is->n_desc; @@ -582,13 +583,14 @@ bfd_mach_o_bfd_copy_private_symbol_data (bfd *ibfd ATTRIBUTE_UNUSED, to the output section. */ bool -bfd_mach_o_bfd_copy_private_section_data (bfd *ibfd, asection *isection, - bfd *obfd, asection *osection, +bfd_mach_o_bfd_copy_private_section_data (bfd *ibfd, + asection *isection, + bfd *obfd ATTRIBUTE_UNUSED, + asection *osection, struct bfd_link_info *link_info) { if (link_info != NULL - || ibfd->xvec->flavour != bfd_target_mach_o_flavour - || obfd->xvec->flavour != bfd_target_mach_o_flavour) + || ibfd->xvec->flavour != bfd_target_mach_o_flavour) return true; bfd_mach_o_section *os = bfd_mach_o_get_mach_o_section (osection); @@ -731,8 +733,7 @@ bfd_mach_o_bfd_copy_private_header_data (bfd *ibfd, bfd *obfd) bfd_mach_o_data_struct *omdata; bfd_mach_o_load_command *icmd; - if (bfd_get_flavour (ibfd) != bfd_target_mach_o_flavour - || bfd_get_flavour (obfd) != bfd_target_mach_o_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_mach_o_flavour) return true; BFD_ASSERT (bfd_mach_o_valid (ibfd)); diff --git a/bfd/mmo.c b/bfd/mmo.c index f63654a4592..0e649032f45 100644 --- a/bfd/mmo.c +++ b/bfd/mmo.c @@ -610,8 +610,7 @@ mmo_ignore_symbol_consistency (bfd *abfd) static bool mmo_bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd) { - if (bfd_get_flavour (ibfd) != bfd_target_mmo_flavour - || bfd_get_flavour (obfd) != bfd_target_mmo_flavour) + if (bfd_get_flavour (ibfd) != bfd_target_mmo_flavour) return true; /* Copy the time the copied-from file was created. If people want the diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c index e6686dc3259..c1774966cf4 100644 --- a/bfd/peXXigen.c +++ b/bfd/peXXigen.c @@ -3004,8 +3004,7 @@ _bfd_XX_bfd_copy_private_bfd_data_common (bfd * ibfd, bfd * obfd) bfd_size_type size; /* One day we may try to grok other private data. */ - if (ibfd->xvec->flavour != bfd_target_coff_flavour - || obfd->xvec->flavour != bfd_target_coff_flavour) + if (ibfd->xvec->flavour != bfd_target_coff_flavour) return true; ipe = pe_data (ibfd); @@ -3131,8 +3130,7 @@ _bfd_XX_bfd_copy_private_section_data (bfd *ibfd, struct bfd_link_info *link_info) { if (link_info != NULL - || bfd_get_flavour (ibfd) != bfd_target_coff_flavour - || bfd_get_flavour (obfd) != bfd_target_coff_flavour) + || bfd_get_flavour (ibfd) != bfd_target_coff_flavour) return true; if (coff_section_data (ibfd, isec) != NULL diff --git a/bfd/section.c b/bfd/section.c index 88c4482fe17..59189161a30 100644 --- a/bfd/section.c +++ b/bfd/section.c @@ -1669,11 +1669,6 @@ bfd_malloc_and_get_section (bfd *abfd, sec_ptr sec, bfd_byte **buf) FUNCTION bfd_copy_private_section_data -SYNOPSIS - bool bfd_copy_private_section_data - (bfd *ibfd, asection *isec, bfd *obfd, asection *osec, - struct bfd_link_info *link_info); - DESCRIPTION Copy private section information from @var{isec} in the BFD @var{ibfd} to the section @var{osec} in the BFD @var{obfd}. diff --git a/bfd/som.c b/bfd/som.c index bed2e9b5e8b..3d1cd0e828c 100644 --- a/bfd/som.c +++ b/bfd/som.c @@ -5346,19 +5346,17 @@ som_new_section_hook (bfd *abfd, asection *newsect) static bool som_bfd_copy_private_symbol_data (bfd *ibfd, asymbol *isymbol, - bfd *obfd, + bfd *obfd ATTRIBUTE_UNUSED, asymbol *osymbol) { - struct som_symbol *input_symbol = (struct som_symbol *) isymbol; - struct som_symbol *output_symbol = (struct som_symbol *) osymbol; - /* One day we may try to grok other private data. */ - if (ibfd->xvec->flavour != bfd_target_som_flavour - || obfd->xvec->flavour != bfd_target_som_flavour) + if (ibfd->xvec->flavour != bfd_target_som_flavour) return false; /* The only private information we need to copy is the argument relocation bits. */ + struct som_symbol *input_symbol = (struct som_symbol *) isymbol; + struct som_symbol *output_symbol = (struct som_symbol *) osymbol; output_symbol->tc_data.ap.hppa_arg_reloc = input_symbol->tc_data.ap.hppa_arg_reloc; @@ -5378,7 +5376,6 @@ som_bfd_copy_private_section_data (bfd *ibfd, /* One day we may try to grok other private data. */ if (link_info != NULL || ibfd->xvec->flavour != bfd_target_som_flavour - || obfd->xvec->flavour != bfd_target_som_flavour || (!som_is_space (isection) && !som_is_subspace (isection))) return true; @@ -5417,8 +5414,7 @@ static bool som_bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd) { /* One day we may try to grok other private data. */ - if (ibfd->xvec->flavour != bfd_target_som_flavour - || obfd->xvec->flavour != bfd_target_som_flavour) + if (ibfd->xvec->flavour != bfd_target_som_flavour) return true; /* Allocate some memory to hold the data we need. */ diff --git a/bfd/syms.c b/bfd/syms.c index b8f21c5fc0c..8fff571a1ee 100644 --- a/bfd/syms.c +++ b/bfd/syms.c @@ -796,10 +796,6 @@ bfd_symbol_info (asymbol *symbol, symbol_info *ret) FUNCTION bfd_copy_private_symbol_data -SYNOPSIS - bool bfd_copy_private_symbol_data - (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym); - DESCRIPTION Copy private symbol information from @var{isym} in the BFD @var{ibfd} to the symbol @var{osym} in the BFD @var{obfd}.