This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[gold commit] PR 14746: Fix internal error in gold when script uses section address in assignment


When processing assignment expressions in a linker script, gold processes
absolute assignments early, but when one of those assignments involves the
address of a section that has not yet been finalized, we get an internal
error in address. This patch fixes the problem by gracefully returning
from expression evaluation even if the address is not yet valid, and
deferring the assignment in such a case.

-cary


2015-08-25  Cary Coutant  <ccoutant@gmail.com>

gold/
        PR gold/14746
        * expression.cc (Expression::Expression_eval_info): Add
        is_valid_pointer field.
        (Expression::eval_maybe_dot): Add is_valid_pointer parameter.
        Adjust all callers.
        (Addr_expression::value_from_output_section): Check whether address
        is valid.
        * script.cc (Symbol_assignment::set_if_absolute): Defer assignment
        if evaluation failed due to address that is not yet valid.
        * script.h: (Expression::eval_maybe_dot): Add is_valid_pointer
        parameter.

Attachment: pr14746.patch
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]