aboutsummaryrefslogtreecommitdiff
path: root/ld/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ld/ChangeLog')
-rw-r--r--ld/ChangeLog87
1 files changed, 87 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index d8e9314..ed249f0 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,90 @@
+2005-06-09 Alan Modra <amodra@bigpond.net.au>
+
+ * ld.h (lang_phase_type): Move to..
+ * ldexp.h: ..here. Add lang_mark_phase_enum.
+ (node_type): Remove etree_undef and etree_unspec.
+ (exp_data_seg): Delete.
+ (struct ldexp_control, expld): New.
+ (invalid, exp_mark_used_section): Delete.
+ (exp_fold_tree, exp_get_vma, exp_get_value_int, exp_get_fill,
+ exp_get_abs_int): Update prototypes.
+ * ldexp.c (assigning_to_dot): Delete.
+ (expld): Define.
+ (make_abs): Operate directly on expld.result. Update all callers.
+ (new_abs): Likewise. Return void.
+ (new_rel_from_abs): Rename from new_rel_from_section.
+ (new_rel, new_rel_from_abs): Operate on expld.result and return void.
+ Update all callers.
+ (fold_unary): Operate on expld.result and return void. Remove
+ "current_section", "allocation_done", "dot", "dotp" and "mark_used"
+ params. Update all callers.
+ (fold_binary, fold_trinary, fold_name, exp_fold_tree_1): Likewise.
+ (fold_unary <ALIGN_K>): Ensure alignment is absolute.
+ (fold_unary <ABSOLUTE>): Use make_abs.
+ (fold_unary <DATA_SEGMENT_END>): Evaluate mark_phase as for
+ allocating_phase.
+ (fold_binary <DATA_SEGMENT_ALIGN, DATA_SEGMENT_RELRO_END, >): Ditto.
+ (fold_binary <'%','/'>): Don't error if marking.
+ (fold_name <SIZEOF_HEADERS>): Don't call bfd_sizeof_headers when
+ marking.
+ (fold_name <NAME>): Remove FIXME; -R is handled correctly. Don't
+ error when marking.
+ (fold_name <ADDR, LOADADDR, SIZEOF>): Don't set SEC_KEEP.
+ (exp_fold_tree_1): Don't error when marking.
+ (exp_fold_tree_1 <etree_rel>): Evaluate in all phases except first.
+ (exp_fold_tree_1 <etree_assign to dot>): Don't check for NULL
+ current section, instead check for NULL dotp.
+ (exp_fold_tree_1 <etree_provide>): Don't evaluate the assignment
+ source unless the symbol is referenced and undefined.
+ (exp_fold_tree): Remove "allocation_done" and "dot" params. Save
+ params to expld.
+ (exp_fold_tree_no_dot): Remove "current_section", "allocation_done
+ and "mark_used" params. Save params to expld. Update all callers.
+ (exp_assop): Do without temp var.
+ (exp_print_tree <etree_undef>): Delete code.
+ (exp_get_vma): Remove "allocation_done" param. Correct error return.
+ (exp_get_fill, exp_get_abs_int): Likewise.
+ (exp_get_value_int): Remove "allocation_done" param.
+ (exp_mark_used_section): Delete.
+ * ldgram.y (fill_exp): Update exp_get_fill call.
+ (origin_spec, length_spec): Update exp_get_vma call.
+ * ldlang.c (lang_init): Don't bother clearing lang_statement_iteration.
+ (lang_mark_used_section_1, lang_mark_used_section): Delete.
+ (strip_excluded_output_sections): Call one_lang_size_sections_pass in
+ marking mode. Merge old lang_mark_used_section code. Correct handling
+ of output sections with excluded input sections and data statements.
+ Don't drop non-zero sized sections. Don't zap os->bfd_section.
+ Do set SEC_EXCLUDE when appropriate.
+ (print_output_section_statement): Update for changed ldexp.c
+ interface.
+ (print_assignment, lang_size_sections_1): Likewise.
+ (lang_do_assignments_1, lang_enter_output_section_statement): Likewise.
+ (lang_new_phdr, lang_record_phdrs): Likewise.
+ (lang_size_sections): Likewise.
+ (insert_pad): Use following statement if it is a pad, rather than
+ creating a new one.
+ (lang_size_sections_1 <lang_output_section_statement_enum>): Do
+ process ignored output section to set vma and lma, but don't
+ update dot for these sections. Don't error if marking.
+ (lang_size_sections_1 <lang_assignment_statement_enum>): Don't
+ update dot for ignored sections.
+ (lang_size_sections_1 <lang_data_statement_enum>): Don't mark absolute
+ section with SEC_ALLOC.
+ (one_lang_size_sections_pass): New function.
+ (lang_size_sections): Remove first five params. Set expld.phase on
+ entry and exit. Use one_lang_size_sections_pass.
+ (lang_do_assignments): Remove all params. Update all callers.
+ (lang_reset_memory_regions): Clear os->processed for all output
+ section statements.
+ * ldlang.h (lang_do_assignments): Update prototype.
+ (lang_size_sections): Likewise.
+ (one_lang_size_sections_pass): Declare.
+ * pe-dll.c (pe_dll_fill_sections, pe_exe_fill_sections): Update
+ lang_size_sections and lang_do_assignments calls.
+ * emultempl/elf32.em (layout_sections_again): Likewise.
+ * emultempl/ppc64elf.em (ppc_before_allocation): Use
+ one_lang_size_sections_pass.
+
2005-06-08 Aldy Hernandez <aldyh@redhat.com>
* emulparams/elf32ms1.sh: New.