diff options
Diffstat (limited to 'ld/ldlang.h')
-rw-r--r-- | ld/ldlang.h | 40 |
1 files changed, 34 insertions, 6 deletions
diff --git a/ld/ldlang.h b/ld/ldlang.h index 3d6a6f3..ee5b777 100644 --- a/ld/ldlang.h +++ b/ld/ldlang.h @@ -1,5 +1,5 @@ /* ldlang.h - linker command language support - Copyright 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. + Copyright 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. This file is part of GLD, the Gnu Linker. @@ -96,6 +96,17 @@ typedef struct lang_output_statement_struct const char *name; } lang_output_statement_type; +/* Section types specified in a linker script. */ + +enum section_type +{ + normal_section, + dsect_section, + copy_section, + noload_section, + info_section, + overlay_section +}; /* This structure holds a list of program headers describing segments in which this section should be placed. */ @@ -120,7 +131,7 @@ typedef struct lang_output_section_statement_struct asection *bfd_section; int flags; /* Or together of all input sections */ - int loadable; /* set from NOLOAD flag in script */ + enum section_type sectype; struct memory_region_struct *region; size_t block_value; fill_type fill; @@ -243,9 +254,6 @@ typedef struct lang_input_statement_struct /* unsigned int globals_in_this_file;*/ const char *target; boolean real; - asection *common_section; - asection *common_output_section; - boolean complained; } lang_input_statement_type; typedef struct @@ -335,6 +343,25 @@ struct lang_phdr etree_type *flags; }; +/* This structure is used to hold a list of sections which may not + cross reference each other. */ + +struct lang_nocrossref +{ + struct lang_nocrossref *next; + const char *name; +}; + +/* The list of nocrossref lists. */ + +struct lang_nocrossrefs +{ + struct lang_nocrossrefs *next; + struct lang_nocrossref *list; +}; + +extern struct lang_nocrossrefs *nocrossref_list; + extern lang_output_section_statement_type *abs_output_section; extern boolean lang_has_input_file; extern etree_type *base; @@ -353,7 +380,7 @@ extern void lang_add_output PARAMS ((const char *, int from_script)); extern void lang_enter_output_section_statement PARAMS ((const char *output_section_statement_name, etree_type * address_exp, - int flags, + enum section_type sectype, bfd_vma block_value, etree_type *align, etree_type *subalign, @@ -431,5 +458,6 @@ extern void lang_new_phdr PARAMS ((const char *, etree_type *, boolean, boolean, etree_type *, etree_type *)); extern void lang_section_in_phdr PARAMS ((const char *)); +extern void lang_add_nocrossref PARAMS ((struct lang_nocrossref *)); #endif |