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]

Re: [PATCH][GOLD] Fix some issues in building ARM Linux kernel with gold.


Here is an updated patch with --no-pipeline-knowledge option added.

-Doug

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.


在 2010年3月30日下午5:18,Doug Kwan (關振德) <dougkwan@google.com> 寫道:
> Sure.  I can add the long option.
>
> -Doug
>
> 2010/3/30 Matt Rice <ratmice@gmail.com>:
>> On Tue, Mar 30, 2010 at 1:58 AM, Doug Kwan (關振德) <dougkwan@google.com> wrote:
>>
>>> It adds new options -EL, -EB,
>>> --no-warn-mismatch and -p.  The -p option really does nothing and is
>>> provided for compatibility with ld.
>>
>> Hey Doug,
>>
>> could you maybe add the long version of -p it looks to me like it is
>> '-no-pipeline-knowledge'
>>
>> I don't suppose you know which toolchains out there require this -p
>> option (to actually do something)
>> and if they are still in use (iirc its been 10 years since this option
>> did anything in gnu ld),
>> I had implemented the solaris version of -p (a different option, under
>> a different name due to this clash, solaris unfortunately provides no
>> long option equivalent),
>>
>> anyhow, the reason i ask is one potential deprecation process could be
>> switching the kernel to pass the long option then deprecate -p freeing
>> up the short option for later reclaimation, this might not work if any
>> of these mystery toolchains implement -p without the
>> -no-pipeline-knowledge option
>> but then if someone gets -no-pipeline-knowledge unrecognized argument
>> we'll know that we are at least passing this option for some good
>> reason.
>> i'm not really sure what the effects of outright removal would be were
>> the option required so, this less invasive change of moving to the
>> long option
>> would at least give people an error message
>>
>> of you I'm just asking for the long option, and if you have further
>> info on this to pass it along, and if you think this sounds good i can
>> send a patch to the kernel switching to the long option.
>>
>

Attachment: patch-no-pipeline-knowledge.txt
Description: Text document


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