Move support code for linker script DEFINED to ldexp.c

This moves support code for DEFINED to ldexp.c where it is used,
losing the lang_ prefix on identifiers.  Two new functions are needed
to initialize and clean up to hash table, but other than that there
are no functional changes here.

	* ldexp.c (struct definedness_hash_entry, definedness_table)
	(definedness_newfunc, symbol_defined, update_definedness): Move
	and rename from..
	* ldlang.h (struct lang_definedness_hash_entry): ..here,..
	* ldlang.c (lang_definedness_table, lang_definedness_newfunc)
	(lang_symbol_defined, lang_update_definedness): ..and here.
	* ldexp.c (ldexp_init, ldexp_finish): New functions, extracted from..
	* ldlang.c (lang_init, lang_finish): ..here.
	* ldexp.h (ldexp_init, ldexp_finish): Declare.
	* ldlang.h (lang_symbol_defined, lang_update_definedness): Delete.
	* ldmain.c (main): Call ldexp_init and ldexp_finish.
This commit is contained in:
Alan Modra
2014-12-22 10:45:13 +10:30
parent 175a3e5098
commit 18d6a79d35
6 changed files with 114 additions and 93 deletions

View File

@@ -470,17 +470,6 @@ struct unique_sections
const char *name;
};
/* This structure records symbols for which we need to keep track of
definedness for use in the DEFINED () test. */
struct lang_definedness_hash_entry
{
struct bfd_hash_entry root;
unsigned int by_object : 1;
unsigned int by_script : 1;
unsigned int iteration : 1;
};
/* Used by place_orphan to keep track of orphan sections and statements. */
struct orphan_save
@@ -683,10 +672,6 @@ extern void lang_add_unique
(const char *);
extern const char *lang_get_output_target
(void);
extern struct lang_definedness_hash_entry *lang_symbol_defined (const char *);
extern void lang_update_definedness
(const char *, struct bfd_link_hash_entry *);
extern void add_excluded_libs (const char *);
extern bfd_boolean load_symbols
(lang_input_statement_type *, lang_statement_list_type *);