* elf32-xtensa.c (ebb_propose_action): Fix argument order.
[deliverable/binutils-gdb.git] / ld / ldlang.h
index d518398b27f5f95546998df18d9bfb3228634cd0..08621910c530c57565e0e26cd1e879c2ffcca920 100644 (file)
@@ -131,7 +131,7 @@ typedef struct lang_output_section_statement_struct
   union etree_union *addr_tree;
   lang_statement_list_type children;
   const char *memspec;
-  union lang_statement_union *next;
+  struct lang_output_section_statement_struct *next;
   const char *name;
 
   int processed;
@@ -146,6 +146,8 @@ typedef struct lang_output_section_statement_struct
 
   int subsection_alignment;    /* Alignment of components.  */
   int section_alignment;       /* Alignment of start of section.  */
+  int constraint;
+  bfd_boolean all_input_readonly;
 
   union etree_union *load_base;
 
@@ -264,6 +266,14 @@ typedef struct lang_input_statement_struct
   /* Whether to search for this entry as a dynamic archive.  */
   bfd_boolean dynamic;
 
+  /* Whether DT_NEEDED tags should be added for dynamic libraries in
+     DT_NEEDED tags from this entry.  */
+  bfd_boolean add_needed;
+
+  /* Whether this entry should cause a DT_NEEDED tag only when
+     satisfying references from regular files, or always.  */
+  bfd_boolean as_needed;
+
   /* Whether to include the entire contents of an archive.  */
   bfd_boolean whole_archive;
 
@@ -306,6 +316,7 @@ typedef struct lang_address_statement_struct
   lang_statement_header_type header;
   const char *section_name;
   union etree_union *address;
+  const segment_type *segment;
 } lang_address_statement_type;
 
 typedef struct
@@ -400,6 +411,17 @@ struct lang_definedness_hash_entry
   int iteration;
 };
 
+/* Used by place_orphan to keep track of orphan sections and statements.  */
+
+struct orphan_save {
+  const char *name;
+  flagword flags;
+  lang_output_section_statement_type *os;
+  asection **section;
+  lang_statement_union_type **stmt;
+  lang_output_section_statement_type **os_tail;
+};
+
 extern struct unique_sections *unique_section_list;
 
 extern lang_output_section_statement_type *abs_output_section;
@@ -434,13 +456,13 @@ extern lang_output_section_statement_type *lang_enter_output_section_statement
    enum section_type sectype,
    etree_type *align,
    etree_type *subalign,
-   etree_type *);
+   etree_type *, int);
 extern void lang_final
   (void);
 extern void lang_process
   (void);
 extern void lang_section_start
-  (const char *, union etree_union *);
+  (const char *, union etree_union *, const segment_type *);
 extern void lang_add_entry
   (const char *, bfd_boolean);
 extern void lang_add_target
@@ -491,6 +513,12 @@ extern void ldlang_add_file
   (lang_input_statement_type *);
 extern lang_output_section_statement_type *lang_output_section_find
   (const char * const);
+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 *);
 extern lang_input_statement_type *lang_add_input_file
   (const char *, lang_input_file_enum_type, const char *);
 extern void lang_add_keepsyms_file
@@ -552,7 +580,7 @@ extern struct bfd_elf_version_deps *lang_add_vers_depend
 extern void lang_register_vers_node
   (const char *, struct bfd_elf_version_tree *, struct bfd_elf_version_deps *);
 bfd_boolean unique_section_p
-  (const char *);
+  (const asection *);
 extern void lang_add_unique
   (const char *);
 extern const char *lang_get_output_target
@@ -562,4 +590,6 @@ extern int lang_symbol_definition_iteration (const char *);
 extern void lang_update_definedness
   (const char *, struct bfd_link_hash_entry *);
 
+extern void add_excluded_libs (const char *);
+
 #endif
This page took 0.023802 seconds and 4 git commands to generate.