* [SDK] How to use the gold linker
@ 2020-12-14 11:14 Christian Eggers
2020-12-14 22:09 ` [OE-core] " Khem Raj
0 siblings, 1 reply; 5+ messages in thread
From: Christian Eggers @ 2020-12-14 11:14 UTC (permalink / raw)
To: openembedded-core
Branch: dunfell
Arch: arm
When I set -fuse-ld=gold with the Yocto SDK, the bfd linker is used anyway:
> . /opt/poky-tiny/3.1.4/environment-setup-cortexa7t2hf-neon-vfpv4-poky-linux-musleabi
> ${CC} -fuse-ld=gold -Wl,--threads -o test test.c
/opt/poky-tiny/3.1.4/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.3.0/real-ld: unrecognized option '--threads'
/opt/poky-tiny/3.1.4/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.3.0/real-ld: use the --help option for usage information
When I call the "real-ld" with -h, I can see that it's the BFD linker.
> ${CC} -print-prog-name=ld
/opt/poky-tiny/3.1.4/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.3.0/ld
> ${CC} -fuse-ld=bfd -print-prog-name=ld
ld.bfd
> ${CC} -fuse-ld=gold -print-prog-name=ld
ld.gold
Compared to other cross toolchains I use, the output of the previous two commands
miss the full path to the linker. The gold linker is part of my SDK:
> arm-poky-linux-musleabi-ld.gold --help
Usage: arm-poky-linux-musleabi-ld.gold [options] file...
Options:
--help Report usage information
...
How can I use the gold linker from gcc (without making it default)?
regards
Christian
________________________________
[http://assets.arri.com/media/sign/2020-04-03-E-mail-signature-Stellar2_V1.jpg] <https://microsites.arri.com/stellar/>
Get all the latest information from www.arri.com<https://www.arri.com/>, Facebook<https://www.facebook.com/TeamARRI>, Twitter<https://twitter.com/ARRIChannel>, Instagram<https://instagram.com/arri> and YouTube<https://www.youtube.com/user/ARRIChannel>.
Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
Sitz: München - Registergericht: Amtsgericht München - Handelsregisternummer: HRA 57918
Persönlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH
Sitz: München - Registergericht: Amtsgericht München - Handelsregisternummer: HRB 54477
Geschäftsführer: Dr. Michael Neuhäuser; Stephan Schenk; Walter Trauninger; Markus Zeiler
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [OE-core] [SDK] How to use the gold linker
2020-12-14 11:14 [SDK] How to use the gold linker Christian Eggers
@ 2020-12-14 22:09 ` Khem Raj
[not found] ` <CABcZAN=QdWzV=LObrdHMWfcDx_1VV3Ce-i_nYL3H7WYUcCtSSA@mail.gmail.com>
0 siblings, 1 reply; 5+ messages in thread
From: Khem Raj @ 2020-12-14 22:09 UTC (permalink / raw)
To: openembedded-core
On 12/14/20 3:14 AM, Christian Eggers wrote:
> Branch: dunfell
> Arch: arm
>
> When I set -fuse-ld=gold with the Yocto SDK, the bfd linker is used anyway:
>
>> . /opt/poky-tiny/3.1.4/environment-setup-cortexa7t2hf-neon-vfpv4-poky-linux-musleabi
>> ${CC} -fuse-ld=gold -Wl,--threads -o test test.c
> /opt/poky-tiny/3.1.4/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.3.0/real-ld: unrecognized option '--threads'
> /opt/poky-tiny/3.1.4/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.3.0/real-ld: use the --help option for usage information
>
> When I call the "real-ld" with -h, I can see that it's the BFD linker.
>
>> ${CC} -print-prog-name=ld
> /opt/poky-tiny/3.1.4/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.3.0/ld
>
>> ${CC} -fuse-ld=bfd -print-prog-name=ld
> ld.bfd
>
>> ${CC} -fuse-ld=gold -print-prog-name=ld
> ld.gold
>
> Compared to other cross toolchains I use, the output of the previous two commands
> miss the full path to the linker. The gold linker is part of my SDK:
>
>> arm-poky-linux-musleabi-ld.gold --help
> Usage: arm-poky-linux-musleabi-ld.gold [options] file...
> Options:
> --help Report usage information
> ...
>
> How can I use the gold linker from gcc (without making it default)?
>
This is kind of known and kind of works as intended, see
https://git.openembedded.org/openembedded-core/tree/meta/recipes-devtools/gcc/gcc-cross-canadian.inc#n132
You might want to try commenting it out and see if it works for you in
resulting SDK
> regards
> Christian
>
>
>
> ________________________________
> [http://assets.arri.com/media/sign/2020-04-03-E-mail-signature-Stellar2_V1.jpg] <https://microsites.arri.com/stellar/>
>
> Get all the latest information from www.arri.com<https://www.arri.com/>, Facebook<https://www.facebook.com/TeamARRI>, Twitter<https://twitter.com/ARRIChannel>, Instagram<https://instagram.com/arri> and YouTube<https://www.youtube.com/user/ARRIChannel>.
>
> Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
> Sitz: München - Registergericht: Amtsgericht München - Handelsregisternummer: HRA 57918
> Persönlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH
> Sitz: München - Registergericht: Amtsgericht München - Handelsregisternummer: HRB 54477
> Geschäftsführer: Dr. Michael Neuhäuser; Stephan Schenk; Walter Trauninger; Markus Zeiler
>
>
>
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [OE-core] [SDK] How to use the gold linker
[not found] ` <CABcZAN=QdWzV=LObrdHMWfcDx_1VV3Ce-i_nYL3H7WYUcCtSSA@mail.gmail.com>
@ 2020-12-15 17:15 ` Khem Raj
2020-12-18 11:30 ` Christian Eggers
0 siblings, 1 reply; 5+ messages in thread
From: Khem Raj @ 2020-12-15 17:15 UTC (permalink / raw)
To: Christopher Larson; +Cc: Patches and discussions about the oe-core layer
On 12/15/20 8:50 AM, Christopher Larson wrote:
> This can be fixed via two changes, first removing real-ld, then adding
> the missing links to fix -fuse-ld=. I have this in one of my
> not-yet-submitted bbappends:
>
> # Remove real-ld, as it prevents checking for ld or gold in the
> search path
> rm -f ${dest}real-ld$suffix
> # Then add links to fix builds with -fuse-ld=
> ln -sf ${BINRELPATH}/${TARGET_PREFIX}ld.gold$suffix
> ${dest}ld.gold$suffix
> ln -sf ${BINRELPATH}/${TARGET_PREFIX}ld.bfd$suffix ${dest}ld.bfd$suffix
>
right this looks ok. Can you submit this for upstreaming please
> On Mon, Dec 14, 2020 at 3:09 PM Khem Raj <raj.khem@gmail.com
> <mailto:raj.khem@gmail.com>> wrote:
>
>
>
> On 12/14/20 3:14 AM, Christian Eggers wrote:
> > Branch: dunfell
> > Arch: arm
> >
> > When I set -fuse-ld=gold with the Yocto SDK, the bfd linker is
> used anyway:
> >
> >> .
> /opt/poky-tiny/3.1.4/environment-setup-cortexa7t2hf-neon-vfpv4-poky-linux-musleabi
> >> ${CC} -fuse-ld=gold -Wl,--threads -o test test.c
> >
> /opt/poky-tiny/3.1.4/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.3.0/real-ld:
> unrecognized option '--threads'
> >
> /opt/poky-tiny/3.1.4/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.3.0/real-ld:
> use the --help option for usage information
> >
> > When I call the "real-ld" with -h, I can see that it's the BFD
> linker.
> >
> >> ${CC} -print-prog-name=ld
> >
> /opt/poky-tiny/3.1.4/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.3.0/ld
> >
> >> ${CC} -fuse-ld=bfd -print-prog-name=ld
> > ld.bfd
> >
> >> ${CC} -fuse-ld=gold -print-prog-name=ld
> > ld.gold
> >
> > Compared to other cross toolchains I use, the output of the
> previous two commands
> > miss the full path to the linker. The gold linker is part of my SDK:
> >
> >> arm-poky-linux-musleabi-ld.gold --help
> > Usage: arm-poky-linux-musleabi-ld.gold [options] file...
> > Options:
> > --help Report usage information
> > ...
> >
> > How can I use the gold linker from gcc (without making it default)?
> >
>
> This is kind of known and kind of works as intended, see
> https://git.openembedded.org/openembedded-core/tree/meta/recipes-devtools/gcc/gcc-cross-canadian.inc#n132
> <https://git.openembedded.org/openembedded-core/tree/meta/recipes-devtools/gcc/gcc-cross-canadian.inc#n132>
>
> You might want to try commenting it out and see if it works for you in
> resulting SDK
> > regards
> > Christian
> >
> >
> >
> > ________________________________
> >
> [http://assets.arri.com/media/sign/2020-04-03-E-mail-signature-Stellar2_V1.jpg <http://assets.arri.com/media/sign/2020-04-03-E-mail-signature-Stellar2_V1.jpg>] <https://microsites.arri.com/stellar/ <https://microsites.arri.com/stellar/>>
> >
> > Get all the latest information from www.arri.com
> <http://www.arri.com><https://www.arri.com/
> <https://www.arri.com/>>, Facebook<https://www.facebook.com/TeamARRI
> <https://www.facebook.com/TeamARRI>>,
> Twitter<https://twitter.com/ARRIChannel
> <https://twitter.com/ARRIChannel>>,
> Instagram<https://instagram.com/arri <https://instagram.com/arri>>
> and YouTube<https://www.youtube.com/user/ARRIChannel
> <https://www.youtube.com/user/ARRIChannel>>.
> >
> > Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
> > Sitz: München - Registergericht: Amtsgericht München -
> Handelsregisternummer: HRA 57918
> > Persönlich haftender Gesellschafter: Arnold & Richter Cine
> Technik GmbH
> > Sitz: München - Registergericht: Amtsgericht München -
> Handelsregisternummer: HRB 54477
> > Geschäftsführer: Dr. Michael Neuhäuser; Stephan Schenk; Walter
> Trauninger; Markus Zeiler
> >
> >
> >
> >
> >
>
>
>
>
>
> --
> Christopher Larson
> kergoth at gmail dot com
> Founder - BitBake, OpenEmbedded, OpenZaurus
> Senior Software Engineer, Mentor Graphics
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [OE-core] [SDK] How to use the gold linker
2020-12-15 17:15 ` Khem Raj
@ 2020-12-18 11:30 ` Christian Eggers
2020-12-18 16:32 ` Khem Raj
0 siblings, 1 reply; 5+ messages in thread
From: Christian Eggers @ 2020-12-18 11:30 UTC (permalink / raw)
To: openembedded-core; +Cc: Khem Raj, Christopher Larson
Hi Khem, hi Christopher,
On Tuesday, 15 December 2020, 18:15:52 CET, Khem Raj wrote:
>
> On 12/15/20 8:50 AM, Christopher Larson wrote:
> > This can be fixed via two changes, first removing real-ld, then adding
> > the missing links to fix -fuse-ld=. I have this in one of my
> > not-yet-submitted bbappends:
> >
> > # Remove real-ld, as it prevents checking for ld or gold in the
> > search path
> > rm -f ${dest}real-ld$suffix
> > # Then add links to fix builds with -fuse-ld=
> > ln -sf ${BINRELPATH}/${TARGET_PREFIX}ld.gold$suffix
> > ${dest}ld.gold$suffix
> > ln -sf ${BINRELPATH}/${TARGET_PREFIX}ld.bfd$suffix ${dest}ld.bfd$suffix
> >
>
> right this looks ok. Can you submit this for upstreaming please
while this change works "fine for me" (I can now use ld.gold which is about
3 times faster for my project), there are side effects:
> ${CC} -fuse-ld=bfd -print-prog-name=ld
/opt/poky-tiny/3.1.4/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.3.0/ld.bfd
> ${CC} -fuse-ld=bfd -o test test.c
works fine
> ${CC} -fuse-ld=gold -print-prog-name=ld
/opt/poky-tiny/3.1.4/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.3.0/ld.gold
> ${CC} -fuse-ld=gold -o test test.c
also works fine
> ${CC} print-prog-name=ld
/opt/poky-tiny/3.1.4/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.3.0/ld
> ${CC} -o test test.c
collect2: fatal error: cannot find ‘ld’
compilation terminated.
> ls -l /opt/poky-tiny/3.1.4/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.3.0/ld
/opt/poky-tiny/3.1.4/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.3.0/ld -> ../../../../../bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-ld
regards
Christian
________________________________
[http://assets.arri.com/media/sign/2020-04-03-E-mail-signature-Stellar2_V1.jpg] <https://microsites.arri.com/stellar/>
Get all the latest information from www.arri.com<https://www.arri.com/>, Facebook<https://www.facebook.com/TeamARRI>, Twitter<https://twitter.com/ARRIChannel>, Instagram<https://instagram.com/arri> and YouTube<https://www.youtube.com/user/ARRIChannel>.
Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
Sitz: München - Registergericht: Amtsgericht München - Handelsregisternummer: HRA 57918
Persönlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH
Sitz: München - Registergericht: Amtsgericht München - Handelsregisternummer: HRB 54477
Geschäftsführer: Dr. Michael Neuhäuser; Stephan Schenk; Walter Trauninger; Markus Zeiler
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [OE-core] [SDK] How to use the gold linker
2020-12-18 11:30 ` Christian Eggers
@ 2020-12-18 16:32 ` Khem Raj
0 siblings, 0 replies; 5+ messages in thread
From: Khem Raj @ 2020-12-18 16:32 UTC (permalink / raw)
To: Christian Eggers, openembedded-core; +Cc: Christopher Larson
On 12/18/20 3:30 AM, Christian Eggers wrote:
> Hi Khem, hi Christopher,
>
> On Tuesday, 15 December 2020, 18:15:52 CET, Khem Raj wrote:
>>
>> On 12/15/20 8:50 AM, Christopher Larson wrote:
>>> This can be fixed via two changes, first removing real-ld, then adding
>>> the missing links to fix -fuse-ld=. I have this in one of my
>>> not-yet-submitted bbappends:
>>>
>>> # Remove real-ld, as it prevents checking for ld or gold in the
>>> search path
>>> rm -f ${dest}real-ld$suffix
>>> # Then add links to fix builds with -fuse-ld=
>>> ln -sf ${BINRELPATH}/${TARGET_PREFIX}ld.gold$suffix
>>> ${dest}ld.gold$suffix
>>> ln -sf ${BINRELPATH}/${TARGET_PREFIX}ld.bfd$suffix ${dest}ld.bfd$suffix
>>>
>>
>> right this looks ok. Can you submit this for upstreaming please
>
> while this change works "fine for me" (I can now use ld.gold which is about
> 3 times faster for my project), there are side effects:
>
>> ${CC} -fuse-ld=bfd -print-prog-name=ld
> /opt/poky-tiny/3.1.4/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.3.0/ld.bfd
>
>> ${CC} -fuse-ld=bfd -o test test.c
> works fine
>
>> ${CC} -fuse-ld=gold -print-prog-name=ld
> /opt/poky-tiny/3.1.4/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.3.0/ld.gold
>
>> ${CC} -fuse-ld=gold -o test test.c
> also works fine
>
>> ${CC} print-prog-name=ld
> /opt/poky-tiny/3.1.4/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.3.0/ld
>
>> ${CC} -o test test.c
> collect2: fatal error: cannot find ‘ld’
> compilation terminated.
>
>> ls -l /opt/poky-tiny/3.1.4/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.3.0/ld
> /opt/poky-tiny/3.1.4/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.3.0/ld -> ../../../../../bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-ld
>
we could patch it out in gcc sources so always use the real one because
the default is one of gold or bfd linker anyway
>
>
> regards
> Christian
>
>
>
>
> ________________________________
> [http://assets.arri.com/media/sign/2020-04-03-E-mail-signature-Stellar2_V1.jpg] <https://microsites.arri.com/stellar/>
>
> Get all the latest information from www.arri.com<https://www.arri.com/>, Facebook<https://www.facebook.com/TeamARRI>, Twitter<https://twitter.com/ARRIChannel>, Instagram<https://instagram.com/arri> and YouTube<https://www.youtube.com/user/ARRIChannel>.
>
> Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
> Sitz: München - Registergericht: Amtsgericht München - Handelsregisternummer: HRA 57918
> Persönlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH
> Sitz: München - Registergericht: Amtsgericht München - Handelsregisternummer: HRB 54477
> Geschäftsführer: Dr. Michael Neuhäuser; Stephan Schenk; Walter Trauninger; Markus Zeiler
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-12-18 16:32 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-14 11:14 [SDK] How to use the gold linker Christian Eggers
2020-12-14 22:09 ` [OE-core] " Khem Raj
[not found] ` <CABcZAN=QdWzV=LObrdHMWfcDx_1VV3Ce-i_nYL3H7WYUcCtSSA@mail.gmail.com>
2020-12-15 17:15 ` Khem Raj
2020-12-18 11:30 ` Christian Eggers
2020-12-18 16:32 ` Khem Raj
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.