* elf-bfd.h (elf_backend_data::elf_backend_modify_segment_map):
authorAlexandre Oliva <aoliva@redhat.com>
Thu, 27 Nov 2003 16:43:25 +0000 (16:43 +0000)
committerAlexandre Oliva <aoliva@redhat.com>
Thu, 27 Nov 2003 16:43:25 +0000 (16:43 +0000)
Add link info argument.
* elf32-i370.c (elf_backend_modify_segment_map): Likewise.
* elf32-ppc.c (ppc_elf_modify_segment_map): Likewise.
* elf32-xtensa.c (elf_xtensa_modify_segment_map): Likewise.
* elf64-hppa.c (elf64_hppa_modify_segment_map): Likewise.
* elfxx-ia64.c (elfNN_ia64_modify_segment_map): Likewise.
* elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Likewise.
* elfxx-mips.h (_bfd_mips_elf_modify_segment_map): Likewise.
* elf.c (assign_file_positions_except_relocs,
assign_file_positions_for_segments): Likewise.  Adjust calls.

bfd/ChangeLog
bfd/elf-bfd.h
bfd/elf.c
bfd/elf32-i370.c
bfd/elf32-ppc.c
bfd/elf32-xtensa.c
bfd/elf64-hppa.c
bfd/elfxx-ia64.c
bfd/elfxx-mips.c
bfd/elfxx-mips.h

index feec9c61f134de7cc9af8fe52365a56095ba9669..9b717d51ea69b5d625b952394dba6d2215297998 100644 (file)
@@ -1,3 +1,17 @@
+2003-11-27  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf-bfd.h (elf_backend_data::elf_backend_modify_segment_map):
+       Add link info argument.
+       * elf32-i370.c (elf_backend_modify_segment_map): Likewise.
+       * elf32-ppc.c (ppc_elf_modify_segment_map): Likewise.
+       * elf32-xtensa.c (elf_xtensa_modify_segment_map): Likewise.
+       * elf64-hppa.c (elf64_hppa_modify_segment_map): Likewise.
+       * elfxx-ia64.c (elfNN_ia64_modify_segment_map): Likewise.
+       * elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Likewise.
+       * elfxx-mips.h (_bfd_mips_elf_modify_segment_map): Likewise.
+       * elf.c (assign_file_positions_except_relocs,
+       assign_file_positions_for_segments): Likewise.  Adjust calls.
+
 2003-11-27  Mark Kettenis  <kettenis@gnu.org>
 
        * elf.c (elfcore_grok_netbsd_procinfo): Make a pseudosection out
index 5cb7efaa17bf03cd8a4605c19992c88e9bada57b..b4db2811d2d291b1f7e7217900d47a99c7041353 100644 (file)
@@ -760,7 +760,7 @@ struct elf_backend_data
   /* This function is called to modify an existing segment map in a
      backend specific fashion.  */
   bfd_boolean (*elf_backend_modify_segment_map)
-    (bfd *);
+    (bfd *, struct bfd_link_info *);
 
   /* This function is called during section gc to discover the section a
      particular relocation refers to.  */
index 04b689435334e60cdc63c9f2e09114a06efb4772..71c3484319cf36f489a11a0a0acd23c4cdcee333 100644 (file)
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -41,7 +41,7 @@
 #include "libiberty.h"
 
 static int elf_sort_sections (const void *, const void *);
-static bfd_boolean assign_file_positions_except_relocs (bfd *);
+static bfd_boolean assign_file_positions_except_relocs (bfd *, struct bfd_link_info *);
 static bfd_boolean prep_headers (bfd *);
 static bfd_boolean swap_out_syms (bfd *, struct bfd_strtab_hash **, int) ;
 static bfd_boolean elfcore_read_notes (bfd *, file_ptr, bfd_size_type) ;
@@ -3103,7 +3103,7 @@ _bfd_elf_compute_section_file_positions (bfd *abfd,
   /* sh_offset is set in assign_file_positions_except_relocs.  */
   shstrtab_hdr->sh_addralign = 1;
 
-  if (!assign_file_positions_except_relocs (abfd))
+  if (!assign_file_positions_except_relocs (abfd, link_info))
     return FALSE;
 
   if (link_info == NULL && bfd_get_symcount (abfd) > 0)
@@ -3576,7 +3576,7 @@ elf_sort_sections (const void *arg1, const void *arg2)
    the file header, and writes out the program headers.  */
 
 static bfd_boolean
-assign_file_positions_for_segments (bfd *abfd)
+assign_file_positions_for_segments (bfd *abfd, struct bfd_link_info *link_info)
 {
   const struct elf_backend_data *bed = get_elf_backend_data (abfd);
   unsigned int count;
@@ -3628,7 +3628,7 @@ assign_file_positions_for_segments (bfd *abfd)
 
   if (bed->elf_backend_modify_segment_map)
     {
-      if (! (*bed->elf_backend_modify_segment_map) (abfd))
+      if (! (*bed->elf_backend_modify_segment_map) (abfd, link_info))
        return FALSE;
     }
 
@@ -4136,7 +4136,8 @@ get_program_header_size (bfd *abfd)
    We also don't set the positions of the .symtab and .strtab here.  */
 
 static bfd_boolean
-assign_file_positions_except_relocs (bfd *abfd)
+assign_file_positions_except_relocs (bfd *abfd,
+                                    struct bfd_link_info *link_info)
 {
   struct elf_obj_tdata * const tdata = elf_tdata (abfd);
   Elf_Internal_Ehdr * const i_ehdrp = elf_elfheader (abfd);
@@ -4187,7 +4188,7 @@ assign_file_positions_except_relocs (bfd *abfd)
 
       /* Assign file positions for the loaded sections based on the
          assignment of sections to segments.  */
-      if (! assign_file_positions_for_segments (abfd))
+      if (! assign_file_positions_for_segments (abfd, link_info))
        return FALSE;
 
       /* Assign file positions for the other sections.  */
index 83783ae888ba36263782289f2eda860e49ce22a1..a84427709cc206d5860ae600652a8c1e5f2691a3 100644 (file)
@@ -1555,6 +1555,6 @@ static int i370_noop ()
 #define elf_backend_additional_program_headers \
   (int (*) PARAMS ((bfd *))) i370_noop
 #define elf_backend_modify_segment_map \
-  (bfd_boolean (*) PARAMS ((bfd *))) i370_noop
+  (bfd_boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) i370_noop
 
 #include "elf32-target.h"
index c7d48aa910a2d3a0e3d7b7cde406b758949fa7e3..9dcc2ea0269a77e0241c3ded5a40549f380842f3 100644 (file)
@@ -2739,7 +2739,8 @@ ppc_elf_additional_program_headers (bfd *abfd)
 /* Modify the segment map if needed.  */
 
 static bfd_boolean
-ppc_elf_modify_segment_map (bfd *abfd ATTRIBUTE_UNUSED)
+ppc_elf_modify_segment_map (bfd *abfd ATTRIBUTE_UNUSED,
+                           struct bfd_link_info *info ATTRIBUTE_UNUSED)
 {
   return TRUE;
 }
index cec239ebfdb575eeee83027cadb0f503e5949145..05d071de8f6bfe5ec45a97b150a453d808c18167 100644 (file)
@@ -60,7 +60,7 @@ static bfd_boolean elf_xtensa_adjust_dynamic_symbol
 static bfd_boolean elf_xtensa_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 static bfd_boolean elf_xtensa_modify_segment_map
-  PARAMS ((bfd *));
+  PARAMS ((bfd *, struct bfd_link_info *));
 static bfd_boolean elf_xtensa_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
@@ -1415,8 +1415,9 @@ elf_xtensa_size_dynamic_sections (output_bfd, info)
    this and it probably ought to be moved into elf.c as well.  */
 
 static bfd_boolean
-elf_xtensa_modify_segment_map (abfd)
+elf_xtensa_modify_segment_map (abfd, info)
      bfd *abfd;
+     struct bfd_link_info *info ATTRIBUTE_UNUSED;
 {
   struct elf_segment_map **m_p;
 
index 294d643088c0739cce9e6aa5bbf08839df692d0d..6ef19c046775b4148e598413fcee3b56cfb11b27 100644 (file)
@@ -213,7 +213,7 @@ static int elf64_hppa_additional_program_headers
   PARAMS ((bfd *));
 
 static bfd_boolean elf64_hppa_modify_segment_map
-  PARAMS ((bfd *));
+  PARAMS ((bfd *, struct bfd_link_info *));
 
 static enum elf_reloc_type_class elf64_hppa_reloc_type_class
   PARAMS ((const Elf_Internal_Rela *));
@@ -2609,8 +2609,9 @@ elf64_hppa_additional_program_headers (abfd)
    existence of a .interp section.  */
 
 static bfd_boolean
-elf64_hppa_modify_segment_map (abfd)
+elf64_hppa_modify_segment_map (abfd, info)
      bfd *abfd;
+     struct bfd_link_info *info ATTRIBUTE_UNUSED;
 {
   struct elf_segment_map *m;
   asection *s;
index 5ff5740515b4e6afa41ed4c03cb19485f8aaa4bb..af2bc263087238618ea3cbfa08f18a618742066f 100644 (file)
@@ -194,7 +194,7 @@ static bfd_boolean elfNN_ia64_add_symbol_hook
 static int elfNN_ia64_additional_program_headers
   PARAMS ((bfd *abfd));
 static bfd_boolean elfNN_ia64_modify_segment_map
-  PARAMS ((bfd *));
+  PARAMS ((bfd *, struct bfd_link_info *));
 static bfd_boolean elfNN_ia64_is_local_label_name
   PARAMS ((bfd *abfd, const char *name));
 static bfd_boolean elfNN_ia64_dynamic_symbol_p
@@ -1405,8 +1405,9 @@ elfNN_ia64_additional_program_headers (abfd)
 }
 
 static bfd_boolean
-elfNN_ia64_modify_segment_map (abfd)
+elfNN_ia64_modify_segment_map (abfd, info)
      bfd *abfd;
+     struct bfd_link_info *info ATTRIBUTE_UNUSED;
 {
   struct elf_segment_map *m, **pm;
   Elf_Internal_Shdr *hdr;
index 0c9490902be666e1563374c131ca129c726ddfd1..685f79b09e586642d5f0d1ebed193641b2a63a62 100644 (file)
@@ -7308,8 +7308,9 @@ _bfd_mips_elf_additional_program_headers (abfd)
 /* Modify the segment map for an IRIX5 executable.  */
 
 bfd_boolean
-_bfd_mips_elf_modify_segment_map (abfd)
+_bfd_mips_elf_modify_segment_map (abfd, info)
      bfd *abfd;
+     struct bfd_link_info *info ATTRIBUTE_UNUSED;
 {
   asection *s;
   struct elf_segment_map *m, **pm;
index b4230eb31641bc3c7a266e91e1ad0ac5ddeb6453..924ca535b0320da4e14e7a565773f4501d07c0ce 100644 (file)
@@ -62,7 +62,7 @@ extern void _bfd_mips_elf_final_write_processing
 extern int _bfd_mips_elf_additional_program_headers
   PARAMS ((bfd *));
 extern bfd_boolean _bfd_mips_elf_modify_segment_map
-  PARAMS ((bfd *));
+  PARAMS ((bfd *, struct bfd_link_info *));
 extern asection * _bfd_mips_elf_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));