include/
* bfdlink.h (struct bfd_link_info): Add input_bfds_tail. bfd/ * simple.c (bfd_simple_get_relocated_section_content): Init input_bfds_tail. ld/ * ldlang.c (ldlang_add_file): Use input_bfds_tail. * ldmain.c (main): Init input_bfds_tail. Sort link_info initialization.
This commit is contained in:
parent
91568d083a
commit
a9a4c53ecc
@ -1,3 +1,8 @@
|
|||||||
|
2007-06-01 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* simple.c (bfd_simple_get_relocated_section_contents): Init
|
||||||
|
input_bfds_tail.
|
||||||
|
|
||||||
2007-05-30 Alan Modra <amodra@bigpond.net.au>
|
2007-05-30 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* elf.c (elf_fake_sections): Adjust test for SHT_NOBITS sections
|
* elf.c (elf_fake_sections): Adjust test for SHT_NOBITS sections
|
||||||
|
@ -183,6 +183,7 @@ bfd_simple_get_relocated_section_contents (bfd *abfd,
|
|||||||
/* Fill in the bare minimum number of fields for our purposes. */
|
/* Fill in the bare minimum number of fields for our purposes. */
|
||||||
memset (&link_info, 0, sizeof (link_info));
|
memset (&link_info, 0, sizeof (link_info));
|
||||||
link_info.input_bfds = abfd;
|
link_info.input_bfds = abfd;
|
||||||
|
link_info.input_bfds_tail = &abfd->link_next;
|
||||||
|
|
||||||
link_info.hash = _bfd_generic_link_hash_table_create (abfd);
|
link_info.hash = _bfd_generic_link_hash_table_create (abfd);
|
||||||
link_info.callbacks = &callbacks;
|
link_info.callbacks = &callbacks;
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2007-06-01 Noah Misch <noah@cs.caltech.edu>
|
||||||
|
Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* bfdlink.h (struct bfd_link_info): Add input_bfds_tail.
|
||||||
|
|
||||||
2007-05-07 Nathan Froyd <froydnj@codesourcery.com>
|
2007-05-07 Nathan Froyd <froydnj@codesourcery.com>
|
||||||
|
|
||||||
* libiberty.h (writeargv): Declare.
|
* libiberty.h (writeargv): Declare.
|
||||||
|
@ -395,6 +395,7 @@ struct bfd_link_info
|
|||||||
/* The list of input BFD's involved in the link. These are chained
|
/* The list of input BFD's involved in the link. These are chained
|
||||||
together via the link_next field. */
|
together via the link_next field. */
|
||||||
bfd *input_bfds;
|
bfd *input_bfds;
|
||||||
|
bfd **input_bfds_tail;
|
||||||
|
|
||||||
/* If a symbol should be created for each input BFD, this is section
|
/* If a symbol should be created for each input BFD, this is section
|
||||||
where those symbols should be placed. It must be a section in
|
where those symbols should be placed. It must be a section in
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
2007-06-01 Noah Misch <noah@cs.caltech.edu>
|
||||||
|
Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* ldlang.c (ldlang_add_file): Use input_bfds_tail.
|
||||||
|
* ldmain.c (main): Init input_bfds_tail. Sort link_info
|
||||||
|
initialization.
|
||||||
|
|
||||||
2007-05-29 Alan Modra <amodra@bigpond.net.au>
|
2007-05-29 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* emultempl/spuelf.em (base_name): New function, split out from..
|
* emultempl/spuelf.em (base_name): New function, split out from..
|
||||||
|
@ -5435,8 +5435,6 @@ lang_for_each_file (void (*func) (lang_input_statement_type *))
|
|||||||
void
|
void
|
||||||
ldlang_add_file (lang_input_statement_type *entry)
|
ldlang_add_file (lang_input_statement_type *entry)
|
||||||
{
|
{
|
||||||
bfd **pp;
|
|
||||||
|
|
||||||
lang_statement_append (&file_chain,
|
lang_statement_append (&file_chain,
|
||||||
(lang_statement_union_type *) entry,
|
(lang_statement_union_type *) entry,
|
||||||
&entry->next);
|
&entry->next);
|
||||||
@ -5445,9 +5443,9 @@ ldlang_add_file (lang_input_statement_type *entry)
|
|||||||
a link. */
|
a link. */
|
||||||
ASSERT (entry->the_bfd->link_next == NULL);
|
ASSERT (entry->the_bfd->link_next == NULL);
|
||||||
ASSERT (entry->the_bfd != output_bfd);
|
ASSERT (entry->the_bfd != output_bfd);
|
||||||
for (pp = &link_info.input_bfds; *pp != NULL; pp = &(*pp)->link_next)
|
|
||||||
;
|
*link_info.input_bfds_tail = entry->the_bfd;
|
||||||
*pp = entry->the_bfd;
|
link_info.input_bfds_tail = &entry->the_bfd->link_next;
|
||||||
entry->the_bfd->usrdata = entry;
|
entry->the_bfd->usrdata = entry;
|
||||||
bfd_set_gp_size (entry->the_bfd, g_switch_value);
|
bfd_set_gp_size (entry->the_bfd, g_switch_value);
|
||||||
|
|
||||||
|
@ -265,15 +265,16 @@ main (int argc, char **argv)
|
|||||||
link_info.keep_memory = TRUE;
|
link_info.keep_memory = TRUE;
|
||||||
link_info.combreloc = TRUE;
|
link_info.combreloc = TRUE;
|
||||||
link_info.strip_discarded = TRUE;
|
link_info.strip_discarded = TRUE;
|
||||||
link_info.callbacks = &link_callbacks;
|
|
||||||
link_info.emit_hash = TRUE;
|
link_info.emit_hash = TRUE;
|
||||||
|
link_info.callbacks = &link_callbacks;
|
||||||
|
link_info.input_bfds_tail = &link_info.input_bfds;
|
||||||
/* SVR4 linkers seem to set DT_INIT and DT_FINI based on magic _init
|
/* SVR4 linkers seem to set DT_INIT and DT_FINI based on magic _init
|
||||||
and _fini symbols. We are compatible. */
|
and _fini symbols. We are compatible. */
|
||||||
link_info.init_function = "_init";
|
link_info.init_function = "_init";
|
||||||
link_info.fini_function = "_fini";
|
link_info.fini_function = "_fini";
|
||||||
|
link_info.relax_pass = 1;
|
||||||
link_info.pei386_auto_import = -1;
|
link_info.pei386_auto_import = -1;
|
||||||
link_info.spare_dynamic_tags = 5;
|
link_info.spare_dynamic_tags = 5;
|
||||||
link_info.relax_pass = 1;
|
|
||||||
|
|
||||||
ldfile_add_arch ("");
|
ldfile_add_arch ("");
|
||||||
emulation = get_emulation (argc, argv);
|
emulation = get_emulation (argc, argv);
|
||||||
|
Loading…
Reference in New Issue
Block a user