Fix typo.
[deliverable/binutils-gdb.git] / ld / ldlang.h
index f7e2fa619e767e808ff0c6c782a86876fa52b29b..7fca8b0dbea5169542dab9c20391b4cbe0360908 100644 (file)
@@ -1,6 +1,6 @@
 /* ldlang.h - linker command language support
    Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-   2001, 2002, 2003, 2004
+   2001, 2002, 2003, 2004, 2005
    Free Software Foundation, Inc.
 
    This file is part of GLD, the Gnu Linker.
@@ -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;
@@ -279,9 +279,6 @@ typedef struct lang_input_statement_struct
 
   bfd_boolean loaded;
 
-#if 0
-  unsigned int globals_in_this_file;
-#endif
   const char *target;
   bfd_boolean real;
 } lang_input_statement_type;
@@ -301,7 +298,17 @@ typedef struct
   union lang_statement_union *file;
 } lang_afile_asection_pair_statement_type;
 
-typedef struct lang_wild_statement_struct
+typedef struct lang_wild_statement_struct lang_wild_statement_type;
+
+typedef void (*callback_t) (lang_wild_statement_type *, struct wildcard_list *,
+                           asection *, lang_input_statement_type *, void *);
+
+typedef void (*walk_wild_section_handler_t) (lang_wild_statement_type *,
+                                            lang_input_statement_type *,
+                                            callback_t callback,
+                                            void *data);
+
+struct lang_wild_statement_struct
 {
   lang_statement_header_type header;
   const char *filename;
@@ -309,13 +316,17 @@ typedef struct lang_wild_statement_struct
   struct wildcard_list *section_list;
   bfd_boolean keep_sections;
   lang_statement_list_type children;
-} lang_wild_statement_type;
+
+  walk_wild_section_handler_t walk_wild_section_handler;
+  struct wildcard_list *handler_data[4];
+};
 
 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
@@ -410,7 +421,16 @@ struct lang_definedness_hash_entry
   int iteration;
 };
 
-extern struct unique_sections *unique_section_list;
+/* 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 lang_output_section_statement_type *abs_output_section;
 extern lang_statement_list_type lang_output_section_statement;
@@ -450,7 +470,7 @@ extern void lang_final
 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
@@ -501,6 +521,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
@@ -523,6 +549,8 @@ extern void lang_for_each_statement
   (void (*) (lang_statement_union_type *));
 extern void *stat_alloc
   (size_t);
+extern void strip_excluded_output_sections
+  (void);
 extern void dprint_statement
   (lang_statement_union_type *, int);
 extern bfd_vma lang_size_sections
@@ -572,4 +600,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.024501 seconds and 4 git commands to generate.