From f6973bdcb778ca7a54817a696cb0c6457f4ae96f Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 23 Apr 2010 04:47:33 +0000 Subject: * expression.cc (Expression::Expression_eval_info): Add result_alignment_pointer field. (Expression::eval_with_dot): Add result_alignment_pointer parameter. Change all callers. (Expression::eval_maybe_dot): Likewise. (class Binary_expression): Add alignment_pointer parameter to left_value and right_value. Change all callers. (BINARY_EXPRESSION): Set result alignment. (class Trinary_expression): Add alignment_pointer parameter to arg2_value and arg3_value. Change all callers. (Trinary_cond::value): Set result alignment. (Max_expression::value, Min_expression::value): Likewise. (Align_expression::value): Likewise. * script-sections.cc (class Sections_element): Add dot_alignment parameter to set_section_addresses virtual function. Update instantiations. (class Output_section_element): Likewise. (Script_sections::create_segments): Add dot_alignment parameter. Change all callers. (Script_sections::create_segments_from_phdrs_clause): Likewise. (Script_sections::set_phdrs_clause_addresses): Likewise. * script-sections.h: Update declarations. * script.h: Update declarations. * output.h (Output_segment::set_minimum_p_align): Don't decrease min_p_align. * testsuite/script_test_3.t: Set large alignment. * testsuite/script_test_3.sh: Make sure that at least one LOAD segment has expected alignment. --- gold/output.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'gold/output.h') diff --git a/gold/output.h b/gold/output.h index 8088565..410ec2c 100644 --- a/gold/output.h +++ b/gold/output.h @@ -3833,7 +3833,10 @@ class Output_segment // upward based on the section alignments. void set_minimum_p_align(uint64_t align) - { this->min_p_align_ = align; } + { + if (align > this->min_p_align_) + this->min_p_align_ = align; + } // Set the offset of this segment based on the section. This should // only be called for a non-PT_LOAD segment. -- cgit v1.1