* ldlang.h (lang_input_section_type): Remove "ifile" field.
[deliverable/binutils-gdb.git] / ld / ldlang.h
index 7fca8b0dbea5169542dab9c20391b4cbe0360908..1613541288a47281d0c9a5611c75d82f08795050 100644 (file)
@@ -17,8 +17,8 @@
 
    You should have received a copy of the GNU General Public License
    along with GLD; see the file COPYING.  If not, write to the Free
-   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.  */
+   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
+   02110-1301, USA.  */
 
 #ifndef LDLANG_H
 #define LDLANG_H
@@ -128,27 +128,15 @@ typedef struct lang_output_section_phdr_list
 typedef struct lang_output_section_statement_struct
 {
   lang_statement_header_type header;
-  union etree_union *addr_tree;
   lang_statement_list_type children;
-  const char *memspec;
   struct lang_output_section_statement_struct *next;
+  struct lang_output_section_statement_struct *prev;
   const char *name;
-
-  int processed;
-
   asection *bfd_section;
-  flagword flags;              /* Or together of all input sections.  */
-  enum section_type sectype;
   lang_memory_region_type *region;
   lang_memory_region_type *lma_region;
-  size_t block_value;
   fill_type *fill;
-
-  int subsection_alignment;    /* Alignment of components.  */
-  int section_alignment;       /* Alignment of start of section.  */
-  int constraint;
-  bfd_boolean all_input_readonly;
-
+  union etree_union *addr_tree;
   union etree_union *load_base;
 
   /* If non-null, an expression to evaluate after setting the section's
@@ -158,6 +146,16 @@ typedef struct lang_output_section_statement_struct
   union etree_union *update_dot_tree;
 
   lang_output_section_phdr_list *phdrs;
+
+  unsigned int block_value;
+  int subsection_alignment;    /* Alignment of components.  */
+  int section_alignment;       /* Alignment of start of section.  */
+  int constraint;
+  flagword flags;
+  enum section_type sectype;
+  unsigned int processed : 1;
+  unsigned int all_input_readonly : 1;
+  unsigned int ignored : 1; 
 } lang_output_section_statement_type;
 
 typedef struct
@@ -185,7 +183,7 @@ typedef struct
   union etree_union *exp;
   bfd_vma value;
   asection *output_section;
-  bfd_vma output_vma;
+  bfd_vma output_offset;
 } lang_data_statement_type;
 
 /* Generate a reloc in the output file.  */
@@ -217,8 +215,8 @@ typedef struct
   /* Output section where reloc should be performed.  */
   asection *output_section;
 
-  /* VMA within output section.  */
-  bfd_vma output_vma;
+  /* Offset within output section.  */
+  bfd_vma output_offset;
 } lang_reloc_statement_type;
 
 typedef struct lang_input_statement_struct
@@ -287,8 +285,6 @@ typedef struct
 {
   lang_statement_header_type header;
   asection *section;
-  lang_input_statement_type *ifile;
-
 } lang_input_section_type;
 
 typedef struct
@@ -448,6 +444,8 @@ extern int lang_statement_iteration;
 
 extern void lang_init
   (void);
+extern void lang_finish
+  (void);
 extern lang_memory_region_type *lang_memory_region_lookup
   (const char *const, bfd_boolean);
 extern lang_memory_region_type *lang_memory_region_default
@@ -473,6 +471,8 @@ extern void lang_section_start
   (const char *, union etree_union *, const segment_type *);
 extern void lang_add_entry
   (const char *, bfd_boolean);
+extern void lang_default_entry
+  (const char *);
 extern void lang_add_target
   (const char *);
 extern void lang_add_wild
@@ -506,8 +506,7 @@ extern void lang_for_each_file
 extern void lang_reset_memory_regions
   (void);
 extern void lang_do_assignments
-  (lang_statement_union_type *, lang_output_section_statement_type *,
-   fill_type *, bfd_vma);
+  (void);
 
 #define LANG_FOR_EACH_INPUT_STATEMENT(statement)                       \
   lang_input_statement_type *statement;                                        \
@@ -524,9 +523,8 @@ extern lang_output_section_statement_type *lang_output_section_find
 extern lang_output_section_statement_type *lang_output_section_find_by_flags
   (const asection *, lang_output_section_statement_type **exact);
 extern lang_output_section_statement_type *lang_insert_orphan
-  (lang_input_statement_type *, asection *, const char *,
-   lang_output_section_statement_type *, struct orphan_save *,
-   etree_type *, lang_statement_list_type *);
+  (asection *, const char *, lang_output_section_statement_type *,
+   struct orphan_save *, etree_type *, lang_statement_list_type *);
 extern lang_input_statement_type *lang_add_input_file
   (const char *, lang_input_file_enum_type, const char *);
 extern void lang_add_keepsyms_file
@@ -553,17 +551,17 @@ extern void strip_excluded_output_sections
   (void);
 extern void dprint_statement
   (lang_statement_union_type *, int);
-extern bfd_vma lang_size_sections
-  (lang_statement_union_type *, lang_output_section_statement_type *,
-   lang_statement_union_type **, fill_type *, bfd_vma, bfd_boolean *,
-   bfd_boolean);
+extern void lang_size_sections
+  (bfd_boolean *, bfd_boolean);
+extern void one_lang_size_sections_pass
+  (bfd_boolean *, bfd_boolean);
 extern void lang_enter_group
   (void);
 extern void lang_leave_group
   (void);
 extern void lang_add_section
   (lang_statement_list_type *, asection *,
-   lang_output_section_statement_type *, lang_input_statement_type *);
+   lang_output_section_statement_type *);
 extern void lang_new_phdr
   (const char *, etree_type *, bfd_boolean, bfd_boolean, etree_type *,
    etree_type *);
@@ -582,7 +580,7 @@ extern void lang_leave_overlay
 extern struct bfd_elf_version_tree *lang_elf_version_info;
 
 extern struct bfd_elf_version_expr *lang_new_vers_pattern
-  (struct bfd_elf_version_expr *, const char *, const char *);
+  (struct bfd_elf_version_expr *, const char *, const char *, bfd_boolean);
 extern struct bfd_elf_version_tree *lang_new_vers_node
   (struct bfd_elf_version_expr *, struct bfd_elf_version_expr *);
 extern struct bfd_elf_version_deps *lang_add_vers_depend
This page took 0.04646 seconds and 4 git commands to generate.