diff options
author | Alan Modra <amodra@gmail.com> | 2005-11-17 00:10:05 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2005-11-17 00:10:05 +0000 |
commit | 7b986e992e1a3a388ee0ff0749749f063cc971a6 (patch) | |
tree | 6b1aef910942de78a04e976cf0678918f96fe222 /ld/ldlang.c | |
parent | a0fef31c45cd7738abcdde81ef3a7dcc21203c5a (diff) | |
download | gdb-7b986e992e1a3a388ee0ff0749749f063cc971a6.zip gdb-7b986e992e1a3a388ee0ff0749749f063cc971a6.tar.gz gdb-7b986e992e1a3a388ee0ff0749749f063cc971a6.tar.bz2 |
* ldlang.h (lang_input_section_type): Remove "ifile" field.
(lang_insert_orphan, lang_add_section): Update prototypes.
* ldlang.c (lang_insert_orphan): Remove "file" param.
(lang_add_section): Likewise. Update all callers.
(wild_sort): Get an input section's bfd via "section->owner".
(size_input_section): Access just_syms_flag via bfd usrdata.
(lang_place_orphans): Update ldemul_place_orphan call.
* ldemul.h (ldemul_place_orphan): Remove input_statement param.
(struct ld_emulation_xfer_struct <place_orphan>): Likewise.
* ldemul.c (ldemul_place_orphan): Likewise.
* ldwrite.c (build_link_order): Access just_syms_flag via bfd usrdata.
* emultempl/armelf.em (arm_elf_set_bfd_for_interworking): Likewise.
* emultempl/beos.em (sort_by_file_name): Access bfd by section->owner.
(sort_sections): Likewise.
(place_orphan): Remove "file" param. Adjust lang_add_section call.
* emultempl/elf32.em (place_orphan): Remove "file" param. Adjust
lang_add_section and lang_insert_orphan calls.
* emultempl/hppaelf.em (hppaelf_add_stub_section): Adjust
lang_add_section call.
(build_section_lists): Access just_syms_flag via bfd usrdata.
* emultempl/m68hc1xelf.em (m68hc11elf_add_stub_section): Adjust
lang_add_section call.
* emultempl/mmo.em (mmo_place_orphan): Remove "file" param. Adjust
lang_add_section and lang_insert_orphan calls.
* emultempl/pe.em (place_orphan): Likewise. Access bfd via section
owner.
* emultempl/ppc64elf.em (ppc_add_stub_section): Adjust
lang_add_section call.
(build_toc_list): Access just_syms_flag via bfd usrdata.
(build_section_lists): Likewise.
* emultempl/xtensaelf.em (elf_xtensa_place_orphan): Remove "file"
param. Adjust place_orphan call.
(ld_build_required_section_dependence): Access bfd via section owner.
Diffstat (limited to 'ld/ldlang.c')
-rw-r--r-- | ld/ldlang.c | 33 |
1 files changed, 14 insertions, 19 deletions
diff --git a/ld/ldlang.c b/ld/ldlang.c index 198abba..6972b50 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -1313,8 +1313,7 @@ output_prev_sec_find (lang_output_section_statement_type *os) } lang_output_section_statement_type * -lang_insert_orphan (lang_input_statement_type *file, - asection *s, +lang_insert_orphan (asection *s, const char *secname, lang_output_section_statement_type *after, struct orphan_save *place, @@ -1385,7 +1384,7 @@ lang_insert_orphan (lang_input_statement_type *file, if (add_child == NULL) add_child = &os->children; - lang_add_section (add_child, s, os, file); + lang_add_section (add_child, s, os); lang_leave_output_section_statement (0, "*default*", NULL, NULL); @@ -1811,8 +1810,7 @@ section_already_linked (bfd *abfd, asection *sec, void *data) void lang_add_section (lang_statement_list_type *ptr, asection *section, - lang_output_section_statement_type *output, - lang_input_statement_type *file) + lang_output_section_statement_type *output) { flagword flags = section->flags; bfd_boolean discard; @@ -1870,7 +1868,6 @@ lang_add_section (lang_statement_list_type *ptr, new = new_stat (lang_input_section, ptr); new->section = section; - new->ifile = file; section->output_section = output->bfd_section; flags = section->flags; @@ -2046,15 +2043,14 @@ wild_sort (lang_wild_statement_type *wild, fa = FALSE; } - if (ls->ifile->the_bfd != NULL - && bfd_my_archive (ls->ifile->the_bfd) != NULL) + if (bfd_my_archive (ls->section->owner) != NULL) { - ln = bfd_get_filename (bfd_my_archive (ls->ifile->the_bfd)); + ln = bfd_get_filename (bfd_my_archive (ls->section->owner)); la = TRUE; } else { - ln = ls->ifile->filename; + ln = ls->section->owner->filename; la = FALSE; } @@ -2069,7 +2065,7 @@ wild_sort (lang_wild_statement_type *wild, if (fa) fn = file->filename; if (la) - ln = ls->ifile->filename; + ln = ls->section->owner->filename; i = strcmp (fn, ln); if (i > 0) @@ -2115,8 +2111,7 @@ output_section_callback (lang_wild_statement_type *ptr, if (before == NULL) lang_add_section (&ptr->children, section, - (lang_output_section_statement_type *) output, - file); + (lang_output_section_statement_type *) output); else { lang_statement_list_type list; @@ -2124,8 +2119,7 @@ output_section_callback (lang_wild_statement_type *ptr, lang_list_init (&list); lang_add_section (&list, section, - (lang_output_section_statement_type *) output, - file); + (lang_output_section_statement_type *) output); /* If we are discarding the section, LIST.HEAD will be NULL. */ @@ -3903,7 +3897,8 @@ size_input_section lang_input_section_type *is = &((*this_ptr)->input_section); asection *i = is->section; - if (!is->ifile->just_syms_flag && (i->flags & SEC_EXCLUDE) == 0) + if (!((lang_input_statement_type *) i->owner->usrdata)->just_syms_flag + && (i->flags & SEC_EXCLUDE) == 0) { unsigned int alignment_needed; asection *o; @@ -5061,17 +5056,17 @@ lang_place_orphans (void) } lang_add_section (&default_common_section->children, s, - default_common_section, file); + default_common_section); } } - else if (ldemul_place_orphan (file, s)) + else if (ldemul_place_orphan (s)) ; else { lang_output_section_statement_type *os; os = lang_output_section_statement_lookup (s->name); - lang_add_section (&os->children, s, os, file); + lang_add_section (&os->children, s, os); } } } |