public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* Re: arm-eabi-4.4.3 with gold
       [not found] <AANLkTikQk6Va7VJ2CRyp6rZRB_aJ22FHq69jKi+tAFk6@mail.gmail.com>
@ 2011-02-08 23:03 ` Doug Kwan (關振德)
       [not found]   ` <AANLkTikSgmGBUba_gX7GH8DQZFwfz1tDpyq9HbNYd9kJ@mail.gmail.com>
  0 siblings, 1 reply; 3+ messages in thread
From: Doug Kwan (關振德) @ 2011-02-08 23:03 UTC (permalink / raw)
  To: Qing Chang; +Cc: binutils, Jing Yu, Ying Wang

KEEP is totally broken.  What section do you need?  You can fall back
on ld by adding -fuse-ld=bfd in gcc's linking step.

On Tue, Feb 8, 2011 at 2:58 PM, Qing Chang <changq@gmail.com> wrote:
> Dear all,
> In the latest arm-eabi-4.4.3 toolchain of Android repo, gold was
> installed/used as default arm-eabi-ld, instead of bfd ld.
>
> However, compared with arm-eabi-4.4.0, with this new 4.4.3 gold, seems some
> key words are not handled in the same way as before. For example,
>   * PROVIDE/PROVIDE_HIDDEN won't define symbol any more
>   * KEEP won't keep sections during garbage collections any more
>
> Do we need certain extra option/flag to re-enable these when using
> 4.4.3 arm-eabi-ld (gold)?
> Thanks,
> Qing

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: arm-eabi-4.4.3 with gold
       [not found]   ` <AANLkTikSgmGBUba_gX7GH8DQZFwfz1tDpyq9HbNYd9kJ@mail.gmail.com>
@ 2011-02-09  3:55     ` Doug Kwan (關振德)
       [not found]       ` <AANLkTikY7GFtATbGHjjLhB8j1hKohnUHQw41xmrAatof@mail.gmail.com>
  0 siblings, 1 reply; 3+ messages in thread
From: Doug Kwan (關振德) @ 2011-02-09  3:55 UTC (permalink / raw)
  To: Qing Chang; +Cc: binutils, Jing Yu, Ying Wang

why -fuse-ld=bfd does not work? Do you invoke the linker directly?

Could you give me an example in which PROVIDE_HIDDEN not long works
with the new tool-chain but does with the old one?

Thanks

-Doug

On Tue, Feb 8, 2011 at 7:48 PM, Qing Chang <changq@gmail.com> wrote:
>
> The section was created by myself.
> Seems "-fuse-ld=bfd" won't make PROVIDE_HIDDEN nor KEEP work as well.
> The only working way for me is to hardcode in my makefile to
> use arm-eabi-ld.bfd explicitly
>
> On Tue, Feb 8, 2011 at 5:03 PM, Doug Kwan (關振德) <dougkwan@google.com> wrote:
>>
>> KEEP is totally broken.  What section do you need?  You can fall back
>> on ld by adding -fuse-ld=bfd in gcc's linking step.
>>
>> On Tue, Feb 8, 2011 at 2:58 PM, Qing Chang <changq@gmail.com> wrote:
>> > Dear all,
>> > In the latest arm-eabi-4.4.3 toolchain of Android repo, gold was
>> > installed/used as default arm-eabi-ld, instead of bfd ld.
>> >
>> > However, compared with arm-eabi-4.4.0, with this new 4.4.3 gold, seems
>> > some
>> > key words are not handled in the same way as before. For example,
>> >   * PROVIDE/PROVIDE_HIDDEN won't define symbol any more
>> >   * KEEP won't keep sections during garbage collections any more
>> >
>> > Do we need certain extra option/flag to re-enable these when using
>> > 4.4.3 arm-eabi-ld (gold)?
>> > Thanks,
>> > Qing
>
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: arm-eabi-4.4.3 with gold
       [not found]       ` <AANLkTikY7GFtATbGHjjLhB8j1hKohnUHQw41xmrAatof@mail.gmail.com>
@ 2011-02-09  4:10         ` Doug Kwan (關振德)
  0 siblings, 0 replies; 3+ messages in thread
From: Doug Kwan (關振德) @ 2011-02-09  4:10 UTC (permalink / raw)
  To: Qing Chang; +Cc: binutils, Jing Yu, Ying Wang

This will break.  The .commands and .apps sections will not be
preserved.  It is a known problem.  Unfortunately, this is a design
issue in the garbage collector in gold and it cannot be fixed easily.
You have no choice but to use GNU ld.  Adding -fuse-ld=bfd is not
useful in your case as it seems that the linker is invoked directly.

On Tue, Feb 8, 2011 at 8:03 PM, Qing Chang <changq@gmail.com> wrote:
> Here is what I did to use "-fuse-ld=bfd",
> ====================
> diff --git a/makefile b/makefile
> index 699fcfe..1ea652e 100644
> --- a/makefile
> +++ b/makefile
> @@ -52,7 +52,7 @@ CPPFLAGS := -fno-exceptions -fno-rtti
> -fno-threadsafe-statics
>  ASMFLAGS := -DASSEMBLY
>  LDFLAGS :=
>
> -CFLAGS += -ffunction-sections -fdata-sections
> +CFLAGS += -ffunction-sections -fdata-sections -fuse-ld=bfd
>  LDFLAGS += -gc-sections --no-enum-size-warning
>
>  # top level rule
> ====================
> Here is the piece of link script of PROVIDE_HIDDEN and KEEP usage,
> ====================
>         .rodata : {
>                 *(.rodata .rodata.* .gnu.linkonce.r.*)
>                 . = ALIGN(4);
>                 __commands_start = .;
>                 KEEP (*(.commands))
>                 __commands_end = .;
>                 . = ALIGN(4);
>                 __apps_start = .;
>                 KEEP (*(.apps))
>                 __apps_end = .;
>                 . = ALIGN(4);
>                 __rodata_end = . ;
>         }
>         .ARM.extab   : { *(.ARM.extab* .gnu.linkonce.armextab.*) }
>         PROVIDE_HIDDEN (__exidx_start = .);
>         .ARM.exidx   : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
>         PROVIDE_HIDDEN (__exidx_end = .);
> ====================
> On Tue, Feb 8, 2011 at 9:55 PM, Doug Kwan (關振德) <dougkwan@google.com> wrote:
>>
>> why -fuse-ld=bfd does not work? Do you invoke the linker directly?
>>
>> Could you give me an example in which PROVIDE_HIDDEN not long works
>> with the new tool-chain but does with the old one?
>>
>> Thanks
>>
>> -Doug
>>
>> On Tue, Feb 8, 2011 at 7:48 PM, Qing Chang <changq@gmail.com> wrote:
>> >
>> > The section was created by myself.
>> > Seems "-fuse-ld=bfd" won't make PROVIDE_HIDDEN nor KEEP work as well.
>> > The only working way for me is to hardcode in my makefile to
>> > use arm-eabi-ld.bfd explicitly
>> >
>> > On Tue, Feb 8, 2011 at 5:03 PM, Doug Kwan (關振德) <dougkwan@google.com>
>> > wrote:
>> >>
>> >> KEEP is totally broken.  What section do you need?  You can fall back
>> >> on ld by adding -fuse-ld=bfd in gcc's linking step.
>> >>
>> >> On Tue, Feb 8, 2011 at 2:58 PM, Qing Chang <changq@gmail.com> wrote:
>> >> > Dear all,
>> >> > In the latest arm-eabi-4.4.3 toolchain of Android repo, gold was
>> >> > installed/used as default arm-eabi-ld, instead of bfd ld.
>> >> >
>> >> > However, compared with arm-eabi-4.4.0, with this new 4.4.3 gold,
>> >> > seems
>> >> > some
>> >> > key words are not handled in the same way as before. For example,
>> >> >   * PROVIDE/PROVIDE_HIDDEN won't define symbol any more
>> >> >   * KEEP won't keep sections during garbage collections any more
>> >> >
>> >> > Do we need certain extra option/flag to re-enable these when using
>> >> > 4.4.3 arm-eabi-ld (gold)?
>> >> > Thanks,
>> >> > Qing
>> >
>> >
>
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-02-09  4:10 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <AANLkTikQk6Va7VJ2CRyp6rZRB_aJ22FHq69jKi+tAFk6@mail.gmail.com>
2011-02-08 23:03 ` arm-eabi-4.4.3 with gold Doug Kwan (關振德)
     [not found]   ` <AANLkTikSgmGBUba_gX7GH8DQZFwfz1tDpyq9HbNYd9kJ@mail.gmail.com>
2011-02-09  3:55     ` Doug Kwan (關振德)
     [not found]       ` <AANLkTikY7GFtATbGHjjLhB8j1hKohnUHQw41xmrAatof@mail.gmail.com>
2011-02-09  4:10         ` Doug Kwan (關振德)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).