aboutsummaryrefslogtreecommitdiff
path: root/ld/ldlang.h
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@cygnus>1995-07-07 22:49:42 +0000
committerKen Raeburn <raeburn@cygnus>1995-07-07 22:49:42 +0000
commit943fbd5bd520934ca3a26abb2d5cfbdd2a7659ec (patch)
treeb240b5f343d4689d462e4b642626afbefc87c9f0 /ld/ldlang.h
parentc71a604ae102994ad081cb57be24586126048ba6 (diff)
downloadgdb-943fbd5bd520934ca3a26abb2d5cfbdd2a7659ec.zip
gdb-943fbd5bd520934ca3a26abb2d5cfbdd2a7659ec.tar.gz
gdb-943fbd5bd520934ca3a26abb2d5cfbdd2a7659ec.tar.bz2
fsf address update, but not in COPYING files
Diffstat (limited to 'ld/ldlang.h')
-rw-r--r--ld/ldlang.h39
1 files changed, 33 insertions, 6 deletions
diff --git a/ld/ldlang.h b/ld/ldlang.h
index a4e3ca7..5e05017 100644
--- a/ld/ldlang.h
+++ b/ld/ldlang.h
@@ -1,5 +1,5 @@
/* ldlang.h - linker command language support
- Copyright 1991, 1992, 1993 Free Software Foundation, Inc.
+ Copyright 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
This file is part of GLD, the Gnu Linker.
@@ -15,7 +15,7 @@
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, 675 Mass Ave, Cambridge, MA 02139, USA. */
+ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef LDLANG_H
#define LDLANG_H
@@ -68,7 +68,8 @@ typedef struct lang_statement_header_struct
lang_target_statement_enum,
lang_output_statement_enum,
lang_padding_statement_enum,
-
+ lang_group_statement_enum,
+
lang_afile_asection_pair_statement_enum,
lang_constructors_statement_enum
} type;
@@ -159,7 +160,7 @@ typedef struct
bfd_reloc_code_real_type reloc;
/* Reloc howto structure. */
- const reloc_howto_type *howto;
+ reloc_howto_type *howto;
/* Section to generate reloc against. Exactly one of section and
name must be NULL. */
@@ -270,6 +271,17 @@ typedef struct
fill_type fill;
} lang_padding_statement_type;
+/* A group statement collects a set of libraries together. The
+ libraries are searched multiple times, until no new undefined
+ symbols are found. The effect is to search a group of libraries as
+ though they were a single library. */
+
+typedef struct
+{
+ lang_statement_header_type header;
+ lang_statement_list_type children;
+} lang_group_statement_type;
+
typedef union lang_statement_union
{
lang_statement_header_type header;
@@ -289,6 +301,7 @@ typedef union lang_statement_union
lang_object_symbols_statement_type object_symbols_statement;
lang_fill_statement_type fill_statement;
lang_padding_statement_type padding_statement;
+ lang_group_statement_type group_statement;
} lang_statement_union_type;
extern lang_output_section_statement_type *abs_output_section;
@@ -331,8 +344,15 @@ extern void lang_abs_symbol_at_beginning_of PARAMS ((const char *,
extern void lang_statement_append PARAMS ((struct statement_list *,
union lang_statement_union *,
union lang_statement_union **));
+extern void lang_for_each_input_file
+ PARAMS ((void (*dothis) (lang_input_statement_type *)));
extern void lang_for_each_file
PARAMS ((void (*dothis) (lang_input_statement_type *)));
+extern bfd_vma lang_do_assignments
+ PARAMS ((lang_statement_union_type * s,
+ lang_output_section_statement_type *output_section_statement,
+ fill_type fill,
+ bfd_vma dot));
#define LANG_FOR_EACH_INPUT_STATEMENT(statement) \
extern lang_statement_list_type file_chain; \
@@ -352,11 +372,12 @@ extern void lang_add_keepsyms_file PARAMS ((const char *filename));
extern lang_output_section_statement_type *
lang_output_section_statement_lookup PARAMS ((const char * const name));
extern void ldlang_add_undef PARAMS ((const char *const name));
-extern void lang_add_output_format PARAMS ((const char *, int from_script));
+extern void lang_add_output_format PARAMS ((const char *, const char *,
+ const char *, int from_script));
extern void lang_list_init PARAMS ((lang_statement_list_type*));
extern void lang_add_data PARAMS ((int type, union etree_union *));
extern void lang_add_reloc
- PARAMS ((bfd_reloc_code_real_type reloc, const reloc_howto_type *howto,
+ PARAMS ((bfd_reloc_code_real_type reloc, reloc_howto_type *howto,
asection *section, const char *name, union etree_union *addend));
extern void lang_for_each_statement
PARAMS ((void (*func) (lang_statement_union_type *)));
@@ -366,5 +387,11 @@ extern bfd_vma lang_size_sections
lang_output_section_statement_type *output_section_statement,
lang_statement_union_type **prev, fill_type fill,
bfd_vma dot, boolean relax));
+extern void lang_enter_group PARAMS ((void));
+extern void lang_leave_group PARAMS ((void));
+extern void wild_doit
+ PARAMS ((lang_statement_list_type *ptr, asection *section,
+ lang_output_section_statement_type *output,
+ lang_input_statement_type *file));
#endif