* section.c (bfd_make_section_anyway): Add all sections to hash tab.
authorAlan Modra <amodra@gmail.com>
Fri, 30 Apr 2004 14:23:40 +0000 (14:23 +0000)
committerAlan Modra <amodra@gmail.com>
Fri, 30 Apr 2004 14:23:40 +0000 (14:23 +0000)
* elf-bfd.h (bfd_elf_is_group_section): Declare.
* elf.c (bfd_elf_is_group_section): New function.
* elfxx-target.h (bfd_elfNN_bfd_is_group_section
* section.c (bfd_generic_is_group_section): New function.
* targets.c (struct bfd_target): Add _bfd_is_group_section field.
(BFD_JUMP_TABLE_LINK): Adjust.
* aout-adobe.c (aout_32_bfd_is_group_section): Define.
* aout-target.h (MY_bfd_is_group_section): Define.
* aout-tic30.c (MY_bfd_is_group_section): Define.
* bfd.c (bfd_is_group_section): Define.
* binary.c (binary_bfd_is_group_section): Define.
* bout.c (b_out_bfd_is_group_section): Define.
* coff-alpha.c (_bfd_ecoff_bfd_is_group_section): Define.
* coff-mips.c (_bfd_ecoff_bfd_is_group_section): Define.
* coff-rs6000.c (rs6000coff_vec, pmac_xcoff_vec): Adjust.
* coff64-rs6000.c (rs6000coff64_vec, aix5coff64_vec): Adjust.
* coffcode.h (coff_bfd_is_group_section): Define.
* i386msdos.c (msdos_bfd_is_group_section): Define.
* i386os9k.c (os9k_bfd_is_group_section): Define.
* ieee.c (ieee_bfd_is_group_section): Define.
* ihex.c (ihex_bfd_is_group_section): Define.
* libbfd-in.h (_bfd_nolink_bfd_is_group_section): Define.
* mach-o.c (bfd_mach_o_bfd_is_group_section): Define.
* mmo.c (mmo_bfd_is_group_section): Define.
* nlm-target.h (nlm_bfd_is_group_section): Define.
* oasys.c (oasys_bfd_is_group_section): Define.
* pef.c (bfd_pef_bfd_is_group_section): Define.
* ppcboot.c (ppcboot_bfd_is_group_section): Define.
* srec.c (srec_bfd_is_group_section): Define.
* tekhex.c (tekhex_bfd_is_group_section): Define.
* versados.c (versados_bfd_is_group_section): Define.
* vms.c (vms_bfd_is_group_section): Define.
* xsym.c (bfd_sym_bfd_is_group_section): Define.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.

35 files changed:
bfd/ChangeLog
bfd/aout-adobe.c
bfd/aout-target.h
bfd/aout-tic30.c
bfd/bfd-in2.h
bfd/bfd.c
bfd/binary.c
bfd/bout.c
bfd/coff-alpha.c
bfd/coff-mips.c
bfd/coff-rs6000.c
bfd/coff64-rs6000.c
bfd/coffcode.h
bfd/elf-bfd.h
bfd/elf.c
bfd/elfxx-target.h
bfd/i386msdos.c
bfd/i386os9k.c
bfd/ieee.c
bfd/ihex.c
bfd/libbfd-in.h
bfd/libbfd.h
bfd/mach-o.c
bfd/mmo.c
bfd/nlm-target.h
bfd/oasys.c
bfd/pef.c
bfd/ppcboot.c
bfd/section.c
bfd/srec.c
bfd/targets.c
bfd/tekhex.c
bfd/versados.c
bfd/vms.c
bfd/xsym.c

index 1221ebd41ed547150579cc41c5c11b3aad4b2544..74bc2cca7a243935b72e3b72a688580f6acd0058 100644 (file)
@@ -1,3 +1,43 @@
+2004-04-30  Alan Modra  <amodra@bigpond.net.au>
+
+       * section.c (bfd_make_section_anyway): Add all sections to hash tab.
+
+       * elf-bfd.h (bfd_elf_is_group_section): Declare.
+       * elf.c (bfd_elf_is_group_section): New function.
+       * elfxx-target.h (bfd_elfNN_bfd_is_group_section
+       * section.c (bfd_generic_is_group_section): New function.
+       * targets.c (struct bfd_target): Add _bfd_is_group_section field.
+       (BFD_JUMP_TABLE_LINK): Adjust.
+       * aout-adobe.c (aout_32_bfd_is_group_section): Define.
+       * aout-target.h (MY_bfd_is_group_section): Define.
+       * aout-tic30.c (MY_bfd_is_group_section): Define.
+       * bfd.c (bfd_is_group_section): Define.
+       * binary.c (binary_bfd_is_group_section): Define.
+       * bout.c (b_out_bfd_is_group_section): Define.
+       * coff-alpha.c (_bfd_ecoff_bfd_is_group_section): Define.
+       * coff-mips.c (_bfd_ecoff_bfd_is_group_section): Define.
+       * coff-rs6000.c (rs6000coff_vec, pmac_xcoff_vec): Adjust.
+       * coff64-rs6000.c (rs6000coff64_vec, aix5coff64_vec): Adjust.
+       * coffcode.h (coff_bfd_is_group_section): Define.
+       * i386msdos.c (msdos_bfd_is_group_section): Define.
+       * i386os9k.c (os9k_bfd_is_group_section): Define.
+       * ieee.c (ieee_bfd_is_group_section): Define.
+       * ihex.c (ihex_bfd_is_group_section): Define.
+       * libbfd-in.h (_bfd_nolink_bfd_is_group_section): Define.
+       * mach-o.c (bfd_mach_o_bfd_is_group_section): Define.
+       * mmo.c (mmo_bfd_is_group_section): Define.
+       * nlm-target.h (nlm_bfd_is_group_section): Define.
+       * oasys.c (oasys_bfd_is_group_section): Define.
+       * pef.c (bfd_pef_bfd_is_group_section): Define.
+       * ppcboot.c (ppcboot_bfd_is_group_section): Define.
+       * srec.c (srec_bfd_is_group_section): Define.
+       * tekhex.c (tekhex_bfd_is_group_section): Define.
+       * versados.c (versados_bfd_is_group_section): Define.
+       * vms.c (vms_bfd_is_group_section): Define.
+       * xsym.c (bfd_sym_bfd_is_group_section): Define.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+
 2004-04-30  Alan Modra  <amodra@bigpond.net.au>
 
        * elflink.c (elf_gc_mark): Follow indirect and warning syms.
index 052e93829e0211f08218d6dac4512dcb7fad92be..c13f80fc24f42cde77d072b2efb4a4d5fdec6a5a 100644 (file)
@@ -1,6 +1,6 @@
 /* BFD back-end for a.out.adobe binaries.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-   2002, 2003
+   2002, 2003, 2004
    Free Software Foundation, Inc.
    Written by Cygnus Support.  Based on bout.c.
 
@@ -517,6 +517,7 @@ aout_adobe_sizeof_headers (ignore_abfd, ignore)
 #define aout_32_bfd_relax_section       bfd_generic_relax_section
 #define aout_32_bfd_gc_sections         bfd_generic_gc_sections
 #define aout_32_bfd_merge_sections     bfd_generic_merge_sections
+#define aout_32_bfd_is_group_section   bfd_generic_is_group_section
 #define aout_32_bfd_discard_group      bfd_generic_discard_group
 #define aout_32_bfd_link_hash_table_create \
   _bfd_generic_link_hash_table_create
index dece83cf2632f61777a79e851a85b309d473f330..80513c7c739f8506f3578ab97baa6857991cf747 100644 (file)
@@ -1,6 +1,6 @@
 /* Define a target vector and some small routines for a variant of a.out.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002, 2003
+   2000, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -513,6 +513,9 @@ MY_bfd_final_link (abfd, info)
 #ifndef MY_bfd_merge_sections
 #define MY_bfd_merge_sections bfd_generic_merge_sections
 #endif
+#ifndef MY_bfd_is_group_section
+#define MY_bfd_is_group_section bfd_generic_is_group_section
+#endif
 #ifndef MY_bfd_discard_group
 #define MY_bfd_discard_group bfd_generic_discard_group
 #endif
index 96f35dce9e40dbef43bbe0256c5811a900646236..1ae0ebfdab91d429f3b8beb0d4f5ed2afc7a1b66 100644 (file)
@@ -1,5 +1,6 @@
 /* BFD back-end for TMS320C30 a.out binaries.
-   Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+   Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004
+   Free Software Foundation, Inc.
    Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au)
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -969,6 +970,9 @@ tic30_aout_set_arch_mach (abfd, arch, machine)
 #ifndef MY_bfd_merge_sections
 #define MY_bfd_merge_sections bfd_generic_merge_sections
 #endif
+#ifndef MY_bfd_is_group_section
+#define MY_bfd_is_group_section bfd_generic_is_group_section
+#endif
 #ifndef MY_bfd_discard_group
 #define MY_bfd_discard_group bfd_generic_discard_group
 #endif
index d0e5cbe37ef9a86703db4dc8a455b2167e83b742..ed45cac8c923f325aee2901b2528a63fa5e4cd4c 100644 (file)
@@ -1470,6 +1470,8 @@ bfd_boolean bfd_copy_private_section_data
 void _bfd_strip_section_from_output
    (struct bfd_link_info *info, asection *section);
 
+bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
+
 bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
 
 /* Extracted from archures.c.  */
@@ -3976,6 +3978,9 @@ bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
 #define bfd_merge_sections(abfd, link_info) \
        BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info))
 
+#define bfd_is_group_section(abfd, sec) \
+       BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
+
 #define bfd_discard_group(abfd, sec) \
        BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
 
@@ -4346,6 +4351,7 @@ typedef struct bfd_target
   NAME##_bfd_link_split_section, \
   NAME##_bfd_gc_sections, \
   NAME##_bfd_merge_sections, \
+  NAME##_bfd_is_group_section, \
   NAME##_bfd_discard_group
 
   int         (*_bfd_sizeof_headers) (bfd *, bfd_boolean);
@@ -4383,6 +4389,9 @@ typedef struct bfd_target
   /* Attempt to merge SEC_MERGE sections.  */
   bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
 
+  /* Is this section a member of a group?  */
+  bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
+
   /* Discard members of a group.  */
   bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
 
index 199ed1af7aa46d0eddd8deb070d4ea35f984d737..e184781f5fd395c9884fda06b03cff06ff310e60 100644 (file)
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -1083,6 +1083,9 @@ DESCRIPTION
 .#define bfd_merge_sections(abfd, link_info) \
 .      BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info))
 .
+.#define bfd_is_group_section(abfd, sec) \
+.      BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
+.
 .#define bfd_discard_group(abfd, sec) \
 .      BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
 .
index 65f46afa39c6114fa0bec28fed2014e85ba39549..c8d8941ec55e4675a88f9632625cc766c7759a58 100644 (file)
@@ -1,6 +1,6 @@
 /* BFD back-end for binary objects.
-   Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-   Free Software Foundation, Inc.
+   Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+   2004 Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support, <ian@cygnus.com>
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -339,6 +339,7 @@ binary_sizeof_headers (abfd, exec)
 #define binary_bfd_relax_section bfd_generic_relax_section
 #define binary_bfd_gc_sections bfd_generic_gc_sections
 #define binary_bfd_merge_sections bfd_generic_merge_sections
+#define binary_bfd_is_group_section bfd_generic_is_group_section
 #define binary_bfd_discard_group bfd_generic_discard_group
 #define binary_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
 #define binary_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
index a39a9a36a9453871196d53b0b945040afddaabbc..0c6c808de79622a0149d918dff11ebedd8633f81 100644 (file)
@@ -1,6 +1,6 @@
 /* BFD back-end for Intel 960 b.out binaries.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002, 2003
+   2000, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
    Written by Cygnus Support.
 
@@ -1487,6 +1487,7 @@ b_out_bfd_get_relocated_section_contents (output_bfd, link_info, link_order,
 #define b_out_bfd_link_split_section  _bfd_generic_link_split_section
 #define b_out_bfd_gc_sections  bfd_generic_gc_sections
 #define b_out_bfd_merge_sections  bfd_generic_merge_sections
+#define b_out_bfd_is_group_section bfd_generic_is_group_section
 #define b_out_bfd_discard_group bfd_generic_discard_group
 
 #define aout_32_get_section_contents_in_window \
index e9dd4169b22b218d1200ffcdc4c2fdb52e757544..262af474594d1144f35afbbca9ef994dd4345c94 100644 (file)
@@ -1,6 +1,6 @@
 /* BFD back-end for ALPHA Extended-Coff files.
-   Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-   Free Software Foundation, Inc.
+   Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+   2003, 2004 Free Software Foundation, Inc.
    Modified from coff-mips.c by Steve Chamberlain <sac@cygnus.com> and
    Ian Lance Taylor <ian@cygnus.com>.
 
@@ -2359,6 +2359,7 @@ static const struct ecoff_backend_data alpha_ecoff_backend_data =
 #define _bfd_ecoff_bfd_relax_section bfd_generic_relax_section
 #define _bfd_ecoff_bfd_gc_sections bfd_generic_gc_sections
 #define _bfd_ecoff_bfd_merge_sections bfd_generic_merge_sections
+#define _bfd_ecoff_bfd_is_group_section bfd_generic_is_group_section
 #define _bfd_ecoff_bfd_discard_group bfd_generic_discard_group
 
 const bfd_target ecoffalpha_little_vec =
index cafc289aa915f062cb8e5c4028dd1a342fd930e9..9ef19852df73cc4e26f9da8d2f80e4fe1e66e35a 100644 (file)
@@ -1,6 +1,6 @@
 /* BFD back-end for MIPS Extended-Coff files.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002, 2003
+   2000, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
    Original version by Per Bothner.
    Full support added by Ian Lance Taylor, ian@cygnus.com.
@@ -1393,6 +1393,7 @@ static const struct ecoff_backend_data mips_ecoff_backend_data =
 /* Merging of sections is not done.  */
 #define _bfd_ecoff_bfd_merge_sections bfd_generic_merge_sections
 
+#define _bfd_ecoff_bfd_is_group_section bfd_generic_is_group_section
 #define _bfd_ecoff_bfd_discard_group bfd_generic_discard_group
 
 extern const bfd_target ecoff_big_vec;
index bcd89dd2f03c5f99c94491f2782cba2a875ec5b8..22d47c561bf06deca36f2f8dd57cd93aec22345e 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for IBM RS/6000 "XCOFF" files.
-   Copyright 1990-1999, 2000, 2001, 2002, 2003
+   Copyright 1990-1999, 2000, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
    FIXME: Can someone provide a transliteration of this name into ASCII?
    Using the following chars caused a compiler warning on HIUX (so I replaced
@@ -4196,6 +4196,7 @@ const bfd_target rs6000coff_vec =
     _bfd_generic_link_split_section,
     bfd_generic_gc_sections,
     bfd_generic_merge_sections,
+    bfd_generic_is_group_section,
     bfd_generic_discard_group,
 
     /* Dynamic */
@@ -4439,6 +4440,7 @@ const bfd_target pmac_xcoff_vec =
     _bfd_generic_link_split_section,
     bfd_generic_gc_sections,
     bfd_generic_merge_sections,
+    bfd_generic_is_group_section,
     bfd_generic_discard_group,
 
     /* Dynamic */
index 14e4c2782bcfcab9561da6a3ff611b0d1bc6d317..857a4b45c36d83133b66ed2ee1b77f438d9338ae 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for IBM RS/6000 "XCOFF64" files.
-   Copyright 2000, 2001, 2002, 2003
+   Copyright 2000, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
    Written Clinton Popetz.
    Contributed by Cygnus Support.
@@ -2737,6 +2737,7 @@ const bfd_target rs6000coff64_vec =
     _bfd_generic_link_split_section,
     bfd_generic_gc_sections,
     bfd_generic_merge_sections,
+    bfd_generic_is_group_section,
     bfd_generic_discard_group,
 
     /* Dynamic */
@@ -2981,6 +2982,7 @@ const bfd_target aix5coff64_vec =
     _bfd_generic_link_split_section,
     bfd_generic_gc_sections,
     bfd_generic_merge_sections,
+    bfd_generic_is_group_section,
     bfd_generic_discard_group,
 
     /* Dynamic */
index 80b5526a4fdaf9586bc924f30cb3774eda5d4658..d495b531d6d38d529a9089507a9b2f7350e78736 100644 (file)
@@ -5564,6 +5564,10 @@ static const bfd_coff_backend_data ticoff1_swap_table =
 #define coff_bfd_merge_sections                    bfd_generic_merge_sections
 #endif
 
+#ifndef coff_bfd_is_group_section
+#define coff_bfd_is_group_section          bfd_generic_is_group_section
+#endif
+
 #ifndef coff_bfd_discard_group
 #define coff_bfd_discard_group             bfd_generic_discard_group
 #endif
index 4877a0a46866d613237957b17a4fc113c8cd934a..9d0ec364b740b9439ff3bca5655622cb37d0848e 100644 (file)
@@ -1368,6 +1368,8 @@ extern bfd_boolean _bfd_elf_slurp_version_tables
   (bfd *);
 extern bfd_boolean _bfd_elf_merge_sections
   (bfd *, struct bfd_link_info *);
+extern bfd_boolean bfd_elf_is_group_section
+  (bfd *, const struct bfd_section *);
 extern bfd_boolean bfd_elf_discard_group
   (bfd *, struct bfd_section *);
 extern void bfd_elf_set_group_contents
index d383813e9397c59b40e2a4c37c8a19d91c4d1106..159e040b45dbae43e94549bd5e1e7df601367708 100644 (file)
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -612,6 +612,12 @@ setup_group (bfd *abfd, Elf_Internal_Shdr *hdr, asection *newsect)
   return TRUE;
 }
 
+bfd_boolean
+bfd_elf_is_group_section (bfd *abfd ATTRIBUTE_UNUSED, const asection *sec)
+{
+  return elf_next_in_group (sec) != NULL;
+}
+
 bfd_boolean
 bfd_elf_discard_group (bfd *abfd ATTRIBUTE_UNUSED, asection *group)
 {
index 5d8af449f0774d5f0ccb7dd3583d73042822db74..61ed19788f8d720022c42aab298091ad38a6103d 100644 (file)
@@ -1,6 +1,6 @@
 /* Target definitions for NN-bit ELF
    Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-   2003 Free Software Foundation, Inc.
+   2003, 2004 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
   _bfd_elf_merge_sections
 #endif
 
+#ifndef bfd_elfNN_bfd_is_group_section
+#define bfd_elfNN_bfd_is_group_section bfd_elf_is_group_section
+#endif
+
 #ifndef bfd_elfNN_bfd_discard_group
 #define bfd_elfNN_bfd_discard_group bfd_elf_discard_group
 #endif
index 059466b4c9514e9ecde62c9c8ddfe0f1576abb9e..2dbd8df4db805a2744942264b1b904dc8d77241a 100644 (file)
@@ -1,6 +1,6 @@
 /* BFD back-end for MS-DOS executables.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2001, 2002,
-   2003 Free Software Foundation, Inc.
+   2003, 2004 Free Software Foundation, Inc.
    Written by Bryan Ford of the University of Utah.
 
    Contributed by the Center for Software Science at the
@@ -176,6 +176,7 @@ msdos_set_section_contents (abfd, section, location, offset, count)
 #define msdos_bfd_relax_section bfd_generic_relax_section
 #define msdos_bfd_gc_sections bfd_generic_gc_sections
 #define msdos_bfd_merge_sections bfd_generic_merge_sections
+#define msdos_bfd_is_group_section bfd_generic_is_group_section
 #define msdos_bfd_discard_group bfd_generic_discard_group
 #define msdos_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
 #define msdos_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
index d9a34e34131b8427b5b6e273a3efb50e484b35a8..3be6bdd92b028ee19a92b8fb963dfb0c1a0cce7a 100644 (file)
@@ -1,6 +1,6 @@
 /* BFD back-end for os9000 i386 binaries.
-   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002
-   Free Software Foundation, Inc.
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002,
+   2004 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -333,6 +333,7 @@ os9k_sizeof_headers (ignore_abfd, ignore)
 #define os9k_bfd_relax_section bfd_generic_relax_section
 #define os9k_bfd_gc_sections bfd_generic_gc_sections
 #define os9k_bfd_merge_sections bfd_generic_merge_sections
+#define os9k_bfd_is_group_section bfd_generic_is_group_section
 #define os9k_bfd_discard_group bfd_generic_discard_group
 #define os9k_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
 #define os9k_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
index 8a0802840d4989c9c25c267a71484be74c1d2805..fcabf750a0dd1c5e2ac88e48583198682c2fcfee 100644 (file)
@@ -1,6 +1,6 @@
 /* BFD back-end for ieee-695 objects.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002, 2003
+   2000, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
 
    Written by Steve Chamberlain of Cygnus Support.
@@ -4037,6 +4037,7 @@ ieee_bfd_debug_info_accumulate (abfd, section)
 #define ieee_bfd_relax_section bfd_generic_relax_section
 #define ieee_bfd_gc_sections bfd_generic_gc_sections
 #define ieee_bfd_merge_sections bfd_generic_merge_sections
+#define ieee_bfd_is_group_section bfd_generic_is_group_section
 #define ieee_bfd_discard_group bfd_generic_discard_group
 #define ieee_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
 #define ieee_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
index 5d2d47fbcb7a6c9ea76459db88ac8ad9a26d5b10..5c4c438e1a8800310aa2df146d52d175cb1a2639 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for Intel Hex objects.
-   Copyright 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003
+   Copyright 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
    Written by Ian Lance Taylor of Cygnus Support <ian@cygnus.com>.
 
@@ -988,6 +988,7 @@ ihex_sizeof_headers (abfd, exec)
 #define ihex_bfd_relax_section bfd_generic_relax_section
 #define ihex_bfd_gc_sections bfd_generic_gc_sections
 #define ihex_bfd_merge_sections bfd_generic_merge_sections
+#define ihex_bfd_is_group_section bfd_generic_is_group_section
 #define ihex_bfd_discard_group bfd_generic_discard_group
 #define ihex_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
 #define ihex_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
index 5dd9a717626c4f85a284a3e288e4eaf50cffdfe2..fb021d3b03464fe7f6be051949d32868d10ca3d5 100644 (file)
@@ -355,6 +355,9 @@ extern bfd_boolean _bfd_generic_set_section_contents
 #define _bfd_nolink_bfd_merge_sections \
   ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \
    bfd_false)
+#define _bfd_nolink_bfd_is_group_section \
+  ((bfd_boolean (*) (bfd *, const struct bfd_section *)) \
+   bfd_false)
 #define _bfd_nolink_bfd_discard_group \
   ((bfd_boolean (*) (bfd *, struct bfd_section *)) \
    bfd_false)
index 2573de7bfbcd309d4655d951d2ad19306e389a56..6841e29b8e0fd3b37661ae5de04801e5f12555e6 100644 (file)
@@ -360,6 +360,9 @@ extern bfd_boolean _bfd_generic_set_section_contents
 #define _bfd_nolink_bfd_merge_sections \
   ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \
    bfd_false)
+#define _bfd_nolink_bfd_is_group_section \
+  ((bfd_boolean (*) (bfd *, const struct bfd_section *)) \
+   bfd_false)
 #define _bfd_nolink_bfd_discard_group \
   ((bfd_boolean (*) (bfd *, struct bfd_section *)) \
    bfd_false)
index b5d6a728d08e284bb1219f53e3e0fe29a2f03ae3..eaa7aba88a4adc94035513264d23cc65713232d4 100644 (file)
@@ -1,5 +1,5 @@
 /* Mach-O support for BFD.
-   Copyright 1999, 2000, 2001, 2002, 2003
+   Copyright 1999, 2000, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -68,6 +68,7 @@
 #define bfd_mach_o_set_section_contents _bfd_generic_set_section_contents
 #define bfd_mach_o_bfd_gc_sections bfd_generic_gc_sections
 #define bfd_mach_o_bfd_merge_sections bfd_generic_merge_sections
+#define bfd_mach_o_bfd_is_group_section bfd_generic_is_group_section
 #define bfd_mach_o_bfd_discard_group bfd_generic_discard_group
 
 static bfd_boolean bfd_mach_o_bfd_copy_private_symbol_data
index 74b4c9dd1d076c18e1c64ea5ea454f358f8ff7ea..d791062ecc3356ca98624b226fb536556f3b7a65 100644 (file)
--- a/bfd/mmo.c
+++ b/bfd/mmo.c
@@ -1,5 +1,5 @@
 /* BFD back-end for mmo objects (MMIX-specific object-format).
-   Copyright 2001, 2002, 2003
+   Copyright 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
    Written by Hans-Peter Nilsson (hp@bitrange.com).
    Infrastructure and other bits originally copied from srec.c and
@@ -3286,6 +3286,7 @@ mmo_canonicalize_reloc (abfd, section, relptr, symbols)
 #define mmo_set_arch_mach bfd_default_set_arch_mach
 #define mmo_bfd_relax_section bfd_generic_relax_section
 #define mmo_bfd_merge_sections bfd_generic_merge_sections
+#define mmo_bfd_is_group_section bfd_generic_is_group_section
 #define mmo_bfd_discard_group bfd_generic_discard_group
 
 /* objcopy will be upset if we return -1 from bfd_get_reloc_upper_bound by
index 70ae4f4d6a770a112613ff5c7bd6c9e9dba8e658..cf84000ff647292fdbe6419a92bbcc262520bdaf 100644 (file)
@@ -1,5 +1,5 @@
 /* Target definitions for 32/64-bit NLM (NetWare Loadable Module)
-   Copyright 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2003
+   Copyright 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -44,6 +44,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #define nlm_bfd_relax_section bfd_generic_relax_section
 #define nlm_bfd_gc_sections bfd_generic_gc_sections
 #define nlm_bfd_merge_sections bfd_generic_merge_sections
+#define nlm_bfd_is_group_section bfd_generic_is_group_section
 #define nlm_bfd_discard_group bfd_generic_discard_group
 #define nlm_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
 #define nlm_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
index be6a8d90d86d004f58b53f0ff08af8573fac7696..2108bda25dbe0afd2f8c5a7bc190c9b83d926999 100644 (file)
@@ -1,6 +1,6 @@
 /* BFD back-end for oasys objects.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2001,
-   2002, 2003 Free Software Foundation, Inc.
+   2002, 2003, 2004 Free Software Foundation, Inc.
    Written by Steve Chamberlain of Cygnus Support, <sac@cygnus.com>.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -1506,6 +1506,7 @@ oasys_sizeof_headers (abfd, exec)
 #define oasys_bfd_relax_section bfd_generic_relax_section
 #define oasys_bfd_gc_sections bfd_generic_gc_sections
 #define oasys_bfd_merge_sections bfd_generic_merge_sections
+#define oasys_bfd_is_group_section bfd_generic_is_group_section
 #define oasys_bfd_discard_group bfd_generic_discard_group
 #define oasys_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
 #define oasys_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
index 7d758cf57d21903aa7dfcfb68d9b4a3c019fecc7..e1bb5a76db5f250f6c20b7e6d6b6bf8b26123b3e 100644 (file)
--- a/bfd/pef.c
+++ b/bfd/pef.c
@@ -1,5 +1,5 @@
 /* PEF support for BFD.
-   Copyright 1999, 2000, 2001, 2002, 2003
+   Copyright 1999, 2000, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -52,6 +52,7 @@
 #define bfd_pef_bfd_relax_section                   bfd_generic_relax_section
 #define bfd_pef_bfd_gc_sections                     bfd_generic_gc_sections
 #define bfd_pef_bfd_merge_sections                  bfd_generic_merge_sections
+#define bfd_pef_bfd_is_group_section               bfd_generic_is_group_section
 #define bfd_pef_bfd_discard_group                   bfd_generic_discard_group
 #define bfd_pef_bfd_link_hash_table_create          _bfd_generic_link_hash_table_create
 #define bfd_pef_bfd_link_hash_table_free            _bfd_generic_link_hash_table_free
index 05fb7de7429535b4c7dbb49b95be8b76de684e4b..d34f1a2777e253dc4ac9c7e9f263762b5f4b5c2e 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for PPCbug boot records.
-   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
    Written by Michael Meissner, Cygnus Support, <meissner@cygnus.com>
 
@@ -469,6 +469,7 @@ ppcboot_bfd_print_private_bfd_data (abfd, farg)
 #define ppcboot_bfd_relax_section bfd_generic_relax_section
 #define ppcboot_bfd_gc_sections bfd_generic_gc_sections
 #define ppcboot_bfd_merge_sections bfd_generic_merge_sections
+#define ppcboot_bfd_is_group_section bfd_generic_is_group_section
 #define ppcboot_bfd_discard_group bfd_generic_discard_group
 #define ppcboot_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
 #define ppcboot_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
index fce8e1eab3d18525a3f9b0855bc0a03e2d454ecc..5ecb4a634813589982b68a002e8cb2b19cb1b9f4 100644 (file)
@@ -1,6 +1,6 @@
 /* Object file "section" support for the BFD library.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002, 2003
+   2000, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
    Written by Cygnus Support.
 
@@ -945,13 +945,19 @@ bfd_make_section_anyway (bfd *abfd, const char *name)
   newsect = &sh->section;
   if (newsect->name != NULL)
     {
-      /* We are making a section of the same name.  It can't go in
-        section_htab without generating a unique section name and
-        that would be pointless;  We don't need to traverse the
-        hash table.  */
-      newsect = bfd_zalloc (abfd, sizeof (asection));
-      if (newsect == NULL)
+      /* We are making a section of the same name.  Put it in the
+        section hash table.  Even though we can't find it directly by a
+        hash lookup, we'll be able to find the section by traversing
+        sh->root.next quicker than looking at all the bfd sections.  */
+      struct section_hash_entry *new_sh;
+      new_sh = (struct section_hash_entry *)
+       bfd_section_hash_newfunc (NULL, &abfd->section_htab, name);
+      if (new_sh == NULL)
        return NULL;
+
+      new_sh->root.next = sh->root.next;
+      sh->root.next = &new_sh->root;
+      newsect = &new_sh->section;
     }
 
   newsect->name = name;
@@ -1349,6 +1355,24 @@ _bfd_strip_section_from_output (struct bfd_link_info *info, asection *s)
   os->flags |= SEC_EXCLUDE;
 }
 
+/*
+FUNCTION
+       bfd_generic_is_group_section
+
+SYNOPSIS
+       bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
+
+DESCRIPTION
+       Returns TRUE if @var{sec} is a member of a group.
+*/
+
+bfd_boolean
+bfd_generic_is_group_section (bfd *abfd ATTRIBUTE_UNUSED,
+                             const asection *sec ATTRIBUTE_UNUSED)
+{
+  return FALSE;
+}
+
 /*
 FUNCTION
        bfd_generic_discard_group
index c0a3d585b437e824fffc026069ca9b604209fccf..2eba70d588a964dab973bfdd7fc0f8af4edcd13c 100644 (file)
@@ -1,6 +1,6 @@
 /* BFD back-end for s-record objects.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002, 2003
+   2000, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
    Written by Steve Chamberlain of Cygnus Support <sac@cygnus.com>.
 
@@ -1284,6 +1284,7 @@ srec_print_symbol (abfd, afile, symbol, how)
 #define srec_bfd_relax_section bfd_generic_relax_section
 #define srec_bfd_gc_sections bfd_generic_gc_sections
 #define srec_bfd_merge_sections bfd_generic_merge_sections
+#define srec_bfd_is_group_section bfd_generic_is_group_section
 #define srec_bfd_discard_group bfd_generic_discard_group
 #define srec_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
 #define srec_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
index 353e8c2214d23babe172de9d9d0f3a5d6c10ef32..29e3f626ac290726dae95e54e78cd196e3d76824 100644 (file)
@@ -406,6 +406,7 @@ BFD_JUMP_TABLE macros.
 .  NAME##_bfd_link_split_section, \
 .  NAME##_bfd_gc_sections, \
 .  NAME##_bfd_merge_sections, \
+.  NAME##_bfd_is_group_section, \
 .  NAME##_bfd_discard_group
 .
 .  int         (*_bfd_sizeof_headers) (bfd *, bfd_boolean);
@@ -443,6 +444,9 @@ BFD_JUMP_TABLE macros.
 .  {* Attempt to merge SEC_MERGE sections.  *}
 .  bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
 .
+.  {* Is this section a member of a group?  *}
+.  bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
+.
 .  {* Discard members of a group.  *}
 .  bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
 .
index f828fe7393c170023a1932f23221806cd45100dd..278e30358e86cbf9dd8c39b0974b721406018c75 100644 (file)
@@ -1,6 +1,6 @@
 /* BFD backend for Extended Tektronix Hex Format  objects.
-   Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003
-   Free Software Foundation, Inc.
+   Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002,
+   2003, 2004 Free Software Foundation, Inc.
    Written by Steve Chamberlain of Cygnus Support <sac@cygnus.com>.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -1001,6 +1001,7 @@ tekhex_print_symbol (abfd, filep, symbol, how)
 #define tekhex_bfd_relax_section bfd_generic_relax_section
 #define tekhex_bfd_gc_sections bfd_generic_gc_sections
 #define tekhex_bfd_merge_sections bfd_generic_merge_sections
+#define tekhex_bfd_is_group_section bfd_generic_is_group_section
 #define tekhex_bfd_discard_group bfd_generic_discard_group
 #define tekhex_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
 #define tekhex_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
index 19df300b5dd9f66583fee80ba237985c3919cca6..cd5926ebfedb78646bdedbda4d7e77e1f6203ea9 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for VERSAdos-E objects.
-   Copyright 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003
+   Copyright 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
    Written by Steve Chamberlain of Cygnus Support <sac@cygnus.com>.
 
@@ -872,6 +872,7 @@ versados_canonicalize_reloc (abfd, section, relptr, symbols)
 #define versados_bfd_relax_section bfd_generic_relax_section
 #define versados_bfd_gc_sections bfd_generic_gc_sections
 #define versados_bfd_merge_sections bfd_generic_merge_sections
+#define versados_bfd_is_group_section bfd_generic_is_group_section
 #define versados_bfd_discard_group bfd_generic_discard_group
 #define versados_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
 #define versados_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
index 62972b680fee4e3794657b6d9b831c2293f26ec5..329b0564ad87fb0d178c45d1b438ecac621841b4 100644 (file)
--- a/bfd/vms.c
+++ b/bfd/vms.c
@@ -1,6 +1,6 @@
 /* vms.c -- BFD back-end for VAX (openVMS/VAX) and
    EVAX (openVMS/Alpha) files.
-   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
 
    Written by Klaus K"ampf (kkaempf@rmi.de)
@@ -166,6 +166,7 @@ static bfd_boolean vms_bfd_set_private_flags
 
 #define vms_make_empty_symbol _bfd_generic_make_empty_symbol
 #define vms_bfd_link_just_syms _bfd_generic_link_just_syms
+#define vms_bfd_is_group_section bfd_generic_is_group_section
 #define vms_bfd_discard_group bfd_generic_discard_group
 \f
 /*===========================================================================*/
index a4058dd3954813895072d9193d3c4f9cc4045f29..e5889d474f3c26daa2cc71a8931e1ec33e0a5425 100644 (file)
@@ -1,5 +1,5 @@
 /* xSYM symbol-file support for BFD.
-   Copyright 1999, 2000, 2001, 2002, 2003
+   Copyright 1999, 2000, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -42,6 +42,7 @@
 #define bfd_sym_bfd_relax_section bfd_generic_relax_section
 #define bfd_sym_bfd_gc_sections bfd_generic_gc_sections
 #define bfd_sym_bfd_merge_sections bfd_generic_merge_sections
+#define bfd_sym_bfd_is_group_section bfd_generic_is_group_section
 #define bfd_sym_bfd_discard_group bfd_generic_discard_group
 #define bfd_sym_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
 #define bfd_sym_bfd_link_hash_table_free _bfd_generic_link_hash_table_free