/* ldlang.h - linker command language support
- Copyright (C) 1991-2015 Free Software Foundation, Inc.
+ Copyright (C) 1991-2018 Free Software Foundation, Inc.
This file is part of the GNU Binutils.
struct flag_info *section_flag_list;
/* Point to the next file - whatever it is, wanders up and down
- archives */
+ archive elements. If this input_statement is for an archive, it
+ won't be on file_chain (which uses this list pointer), but if
+ any elements have been extracted from the archive, it will point
+ to the input_statement for the last such element. */
union lang_statement_union *next;
- /* Point to the next file, but skips archive contents. */
+ /* Point to the next file, but skips archive contents. Used by
+ input_file_chain. */
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)
extern void ldlang_add_file
(lang_input_statement_type *);
extern lang_output_section_statement_type *lang_output_section_find_by_flags
- (const asection *, lang_output_section_statement_type **,
+ (const asection *, flagword, lang_output_section_statement_type **,
lang_match_sec_type_func);
extern lang_output_section_statement_type *lang_insert_orphan
(asection *, const char *, int, lang_output_section_statement_type *,
(lang_output_section_statement_type *, int);
extern void ldlang_add_undef
(const char *const, bfd_boolean);
+extern void ldlang_add_require_defined
+ (const char *const);
extern void lang_add_output_format
(const char *, const char *, const char *, int);
extern void lang_list_init
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_ld_feature (char *);
+extern void
+lang_print_memory_usage (void);
+
+extern void
+lang_add_gc_name (const char *);
+
#endif