This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [Bug15639][ARM] gold and -flto always fails with an internal error on arm-linux-gnueabi*
- From: Will Newton <will dot newton at linaro dot org>
- To: Cary Coutant <ccoutant at google dot com>
- Cc: Doug Kwan (éæå) <dougkwan at google dot com>, Kugan <kugan dot vivekanandarajah at linaro dot org>, binutils <binutils at sourceware dot org>, "patches at linaro dot org" <patches at linaro dot org>
- Date: Tue, 8 Jul 2014 10:28:46 +0100
- Subject: Re: [Bug15639][ARM] gold and -flto always fails with an internal error on arm-linux-gnueabi*
- Authentication-results: sourceware.org; auth=none
- References: <52E8E59A dot 4040005 at linaro dot org> <CAH9SEo6WWhKyVJ22io5gbifxWyNUVQPMzRpu1--ds_pyrbwwSQ at mail dot gmail dot com> <CAHACq4p+d326TL9Hqcs83=SGnM-ESHi9QCsb0x+YQyaAUhv4BA at mail dot gmail dot com>
On 7 July 2014 18:22, Cary Coutant <ccoutant@google.com> wrote:
> My apologies -- I must have missed this patch (and your ping).
>
> My first reaction is that we probably shouldn't be calling the Target
> version of do_read_symbols from do_layout_deferred_sections. This same
> problem could occur on other targets that have an override of
> do_read_symbols.
>
> I'd suggest instead factoring out the body of
> Sized_relobj_file::do_read_symbols() into a non-virtual, protected,
> method Sized_relobj_file::base_read_symbols(), and have
> Sized_relobj_file::do_read_symbols() call it. Then call that instead
> of read_symbols() from do_layout_deferred_sections(). The
> target-specific overrides of do_read_symbols() should also call the
> new method directly instead of calling the base class'
> do_read_symbols().
>
> Could you give the attached patch a try and see if it fixes your problem?
Yes, this fixes the problem for me. Thanks!
> -cary
>
>
> On Fri, Jul 4, 2014 at 2:47 PM, Doug Kwan (éæå) <dougkwan@google.com> wrote:
>> Looks good to me. I don't have approval power. Cary, could you approval
>> this?
>>
>> -Doug
>>
>>
>> On Wed, Jan 29, 2014 at 3:27 AM, Kugan <kugan.vivekanandarajah@linaro.org>
>> wrote:
>>>
>>> Hi,
>>>
>>> In Sized_relobj_file<size,
>>> big_endian>::do_layout_deferred_sections(Layout* layout), while reading
>>> .eh_frame, Arm_relobj<big_endian>::do_read_symbols(Read_symbols_data*
>>> sd) is called second time around and this triggering the assert.
>>>
>>> This patch removes the assert and skips reading if this section is
>>> already read.
>>>
>>> Is this OK?
>>>
>>> Thanks,
>>> Kugan
>>>
>>>
>>> gold/
>>> +2014-01-29 Kugan Vivekanandarajah <kuganv@linaro.org>
>>> +
>>> + * arm.cc (Arm_relobj<big_endian>::do_read_symbols): Skip reading
>>> + .ARM.attributes section if already read.
>>> +
>>
>>
--
Will Newton
Toolchain Working Group, Linaro