This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] gold: NOLOAD behavior compatible with GNU ld.
- From: Doug Kwan (éæå) <dougkwan at google dot com>
- To: Johan Karlsson <Johan dot Karlsson at enea dot com>
- Cc: Cary Coutant <ccoutant at gmail dot com>, Binutils <binutils at sourceware dot org>, "iant at google dot com" <iant at google dot com>
- Date: Tue, 13 Oct 2015 00:41:36 -0700
- Subject: Re: [PATCH] gold: NOLOAD behavior compatible with GNU ld.
- Authentication-results: sourceware.org; auth=none
- References: <5006DF1F5103294E8DA02CC4C71B1BF80873BF3C at SESTOEX04 dot enea dot se> <CAH9SEo7BgZJLyAGDJjmBxBTYJwwqcaVDts6HHZ+5jF_aez2J=g at mail dot gmail dot com> <CAJimCsGDXs0D9LsV=N=qb6M1iKXW11cY2F9onTD+LE9YVWfNaA at mail dot gmail dot com> <CAH9SEo5aFZ4mQjZExuDQgVNebkex0a_xWsZOon3V=QxKD4hCSg at mail dot gmail dot com> <5006DF1F5103294E8DA02CC4C71B1BF808744F61 at SESTOEX04 dot enea dot se> <CAH9SEo5cqkW2fXY3RCDCm2fRMbrYS1+KgwUR5-=KQdhGHP0JDA at mail dot gmail dot com>
It seems that Android prebuilt kernel toolchain is not configured with
gold. Let me talk to the Android Team and see if building the kernel
with gold is still supported. I have not worked on Android for more
than a couple of years. I am not sure if we ever use gold to build
production Android kernel.
On Wed, Oct 7, 2015 at 10:15 PM, Doug Kwan (éæå) <dougkwan@google.com> wrote:
> I can test Johan's patch and see if it build the ARM kernel.
>
> On Wed, Oct 7, 2015 at 5:49 AM, Johan Karlsson <Johan.Karlsson@enea.com> wrote:
>> I don't know how to build the ARM kernel so I would appreciate if someone could try it out using the patch. This patch together with the fix I did for PR 16711 greatly improves the ELF size when using NOLOAD and lots of bss.
>>
>>> From: Doug Kwan (éæå) [mailto:dougkwan@google.com]
>>> Sent: den 7 oktober 2015 00:26
>>>
>>> Expected behaviour was gold being able to build an ARM kernel that boots.
>>> The original patch was added because gold had not been able to build the
>>> kernel used in Android.
>>>
>>> As long as Johan can build an ARM kernel that boots with this patch. I am
>>> okay.
>>>
>>> On Tue, Oct 6, 2015 at 3:18 PM, Cary Coutant <ccoutant@gmail.com> wrote:
>>> > Based on
>>> >
>>> > https://sourceware.org/ml/binutils/2010-04/msg00094.html
>>> >
>>> > it seems to me that ripping out the original NOLOAD patch would break
>>> > building the ARM compressed kernel.
>>> >
>>> > Doug, do you remember what the expected behavior was at the time?
>>> >
>>> > -cary
>>> >
>>> >
>>> >
>>> >
>>> > On Sun, Sep 20, 2015 at 12:54 PM, Doug Kwan (éæå)
>>> <dougkwan@google.com> wrote:
>>> >> Looks good to me. I don't have right to approve the patch though.
>>> >>
>>> >> On Thu, Sep 17, 2015 at 2:47 AM, Johan Karlsson
>>> <Johan.Karlsson@enea.com> wrote:
>>> >>> Hi all,
>>> >>> This patch makes gold handle the NOLOAD section attribute in the same
>>> way GNU ld does for elf.
>>> >>>
>>> >>> Instead of creating a SHT_PROGBITS with no flags section it creates one
>>> with SHT_NOBITS and SHF_ALLOC set. With this change all special handling of
>>> noload sections can be removed and all NOLOAD sections as handled as
>>> NOBITS.
>>> >>>
>>> >>> 2015-09-17 Johan Karlsson <johan.karlsson@enea.com>
>>> >>>
>>> >>> NOLOAD section attribute compatible with GNU ld.
>>> >>>
>>> >>> * layout.cc (Layout::choose_output_section): Create NOLOAD
>>> sections as
>>> >>> SHT_NOBITS and removed special handling of NOLOAD sections.
>>> >>> (Layout::make_output_section_for_script): Create NOLOAD as
>>> SHT_NOBIT
>>> >>> with SHF_ALLOC set.
>>> >>> * output.cc (Output_section::Output_section): Removed member
>>> is_noload.
>>> >>> (Output_section::do_reset_address_and_file_offset): Removed
>>> special
>>> >>> handling of NOLOAD.
>>> >>> * output.h (Output_section): Removed is_noload() and
>>> set_is_noload().
>>> >>> removed member is_noload_.
>>> >>> * script-sections.cc
>>> (Output_section_definition::set_section_addresses):
>>> >>> removed special handling of NOLOAD.
>>> >>> (Sort_output_sections::operator()): Removed sorting of NOLOAD
>>> sections.
>>> >>>