/* ldlang.h - linker command language support
- Copyright (C) 1991-2016 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU Binutils.
typedef struct lang_statement_header_struct
{
+ /* Next pointer for statement_list statement list. */
union lang_statement_union *next;
enum statement_enum type;
} lang_statement_header_type;
fill_type *fill;
union etree_union *addr_tree;
union etree_union *load_base;
+ union etree_union *section_alignment;
+ union etree_union *subsection_alignment;
/* If non-null, an expression to evaluate after setting the section's
size. The expression is evaluated inside REGION (above) with '.'
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;
struct flag_info *section_flag_list;
- /* Point to the next file - whatever it is, wanders up and down
- archives */
+ /* Next pointer for file_chain statement list. */
union lang_statement_union *next;
- /* Point to the next file, but skips archive contents. */
+ /* Next pointer for input_file_chain statement list. */
union lang_statement_union *next_real_file;
const char *target;
struct wildcard_list *section_list;
bfd_boolean keep_sections;
lang_statement_list_type children;
+ struct name_list *exclude_name_list;
walk_wild_section_handler_t walk_wild_section_handler;
struct wildcard_list *handler_data[4];
{
struct lang_nocrossrefs *next;
lang_nocrossref_type *list;
+ bfd_boolean onlyfirst;
};
/* This structure is used to hold a list of input section names which
#define LANG_FOR_EACH_INPUT_STATEMENT(statement) \
lang_input_statement_type *statement; \
- for (statement = (lang_input_statement_type *) file_chain.head; \
- statement != (lang_input_statement_type *) NULL; \
- statement = (lang_input_statement_type *) statement->next) \
+ for (statement = &file_chain.head->input_statement; \
+ statement != NULL; \
+ statement = &statement->next->input_statement)
#define lang_output_section_find(NAME) \
lang_output_section_statement_lookup (NAME, 0, FALSE)
etree_type *);
extern void lang_add_nocrossref
(lang_nocrossref_type *);
+extern void lang_add_nocrossref_to
+ (lang_nocrossref_type *);
extern void lang_enter_overlay
(etree_type *, etree_type *);
extern void lang_enter_overlay_section
extern void
lang_print_memory_usage (void);
+extern void
+lang_add_gc_name (const char *);
+
#endif