This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH][GOLD] Fix some issues in building ARM Linux kernel with gold.
- From: Ian Lance Taylor <iant at google dot com>
- To: Doug Kwan (éæå) <dougkwan at google dot com>
- Cc: Matt Rice <ratmice at gmail dot com>, binutils <binutils at sourceware dot org>
- Date: Wed, 07 Apr 2010 14:01:15 -0700
- Subject: Re: [PATCH][GOLD] Fix some issues in building ARM Linux kernel with gold.
- References: <498552561003300158r78e4241fy6bad8cc37911e6dc@mail.gmail.com> <8ba6bed41003301615vad6a1caqb06f4071224e07c4@mail.gmail.com> <498552561003301718k60e30ed4r78286b735ff008bf@mail.gmail.com> <498552561003301800y3fd012eckb7a358fb1d9cf19a@mail.gmail.com>
"Doug Kwan (éæå)" <dougkwan@google.com> writes:
> 2010-03-30 Doug Kwan <dougkwan@google.com>
>
> * arm.cc (Arm_relobj::Arm_relobj): Initialize
> merge_flags_and_attribures.
> (Arm_relobj::merge_flags_and_attributes): New method.
> (Arm_relobj::merge_flags_and_attributes_): New data member.
> (Arm_exidx_cantunwind::do_fixed_endian_write): Fix formatting.
> (Arm_relobj::scan_sections_for_stubs): Ditto.
> (Arm_relobj::do_read_symbols): Check to see if we really want to
> merge processor-specific flags and attributes. Exit early if
> an object is empty except for section names and the undefined symbol.
> (Target_arm::do_finalize_sections): Move check for ELF format to
> Arm_relobj::do_read_symbols. Merge processor specific flags and
> attributes from a regular object only when we have determined that
> it is aapropriate. Do not create an .ARM.attributes section in
> output if there is no regular input object.
> (Target_arm::merge_processor_specific_flags): Check
> --warn-mismatch before printing any error.
> (Target_arm::merge_object_attributes): Ditto.
> * gold.cc (queue_middle_tasks): Handle the case in which there is
> no regular object in input.
> * options.cc (General_options::parse_EB): New method.
> (General_options::parse_EL): Same.
> (General_options::General_options): Initialize endianity_.
> * options.h (-EB, -EL, --no-pipeline-knowledge, -p, --warn-mismatch):
> New options.
> (General_options::Endianity): New enum.
> (General_options::endianity): New method.
> (General_options::endianity_): New data member.
> * parameters.cc (Parameters::set_options): Check target endianity.
> (Parameters::set_target_once): Ditto.
> (Parameters::check_target_endianity): New method.
> (parameters_force_valid_target): If either -EL or -EB is specified,
> use it to define endianity of default target.
> * parameters.h (Parameters::check_target_endianity): New method
> declaration.
Please change "endianity" to "endianness" throughout the patch.
Sorry.
> + if (this->target().is_big_endian() != big_endian)
> + gold_error(_("incompatible endianity specified in command line"));
Make this error message more like "input file does not match -EB/-EL
option". It would be nice if we could give the name of the file, but
I guess that is not convenient.
This is OK with those changes.
Thanks.
Ian