* noticeably longer build (link?) times with binutils 2.26
@ 2016-02-08 23:20 Trevor Woerner
2016-02-09 0:25 ` Mark Hatle
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Trevor Woerner @ 2016-02-08 23:20 UTC (permalink / raw)
To: OE Core mailing list
This is more of a "FYI", but I've noticed that the build time of my
chromium recipe has gone from ~45 minutes to ~2h15m when the only thing
that changes is to move openembedded-core from the commit just before
upgrading binutils to version 2.26 ([fd75637] native.bbclass: Set
CXXFLAGS from BUILD_CXXFLAGS not BUILD_CFLAGS) to the one immediately
after ([86ade2c] binutils: Upgrade to 2.26).
Oddly enough I don't see this same behaviour when building, for example,
core-image-minimal, so I have no idea what makes chromium so special
and, therefore, whether other recipes might be similarly affected.
Also, it seems as though a lot of the added time is coming from the
linking stage, but I don't have (or know how to get) hard numbers for
that. Is there a way to get build times for each task within one recipe?
I've repeated this test 6 times (build just before binutils-2.26, build
just after binutils-2.26) and the results are always within a couple
minutes of each other. So I doubt this is some random occurrence.
^ permalink raw reply [flat|nested] 14+ messages in thread* Re: noticeably longer build (link?) times with binutils 2.26
2016-02-08 23:20 noticeably longer build (link?) times with binutils 2.26 Trevor Woerner
@ 2016-02-09 0:25 ` Mark Hatle
2016-02-09 2:56 ` Trevor Woerner
2016-02-09 2:25 ` Khem Raj
2016-02-10 4:18 ` Trevor Woerner
2 siblings, 1 reply; 14+ messages in thread
From: Mark Hatle @ 2016-02-09 0:25 UTC (permalink / raw)
To: Trevor Woerner, OE Core mailing list
Which arch/tune are you targeting? I know that on a few processors 2.26 has
added "link time optimization" (i.e. our processor is broken and we're working
around problems in the linker.)
It's possible you hit one of those cases, or it may simply be that much slower
for some reason. But worse then double the time is really terrible.
On 2/8/16 5:20 PM, Trevor Woerner wrote:
> This is more of a "FYI", but I've noticed that the build time of my
> chromium recipe has gone from ~45 minutes to ~2h15m when the only thing
> that changes is to move openembedded-core from the commit just before
> upgrading binutils to version 2.26 ([fd75637] native.bbclass: Set
> CXXFLAGS from BUILD_CXXFLAGS not BUILD_CFLAGS) to the one immediately
> after ([86ade2c] binutils: Upgrade to 2.26).
>
> Oddly enough I don't see this same behaviour when building, for example,
> core-image-minimal, so I have no idea what makes chromium so special
> and, therefore, whether other recipes might be similarly affected.
>
> Also, it seems as though a lot of the added time is coming from the
> linking stage, but I don't have (or know how to get) hard numbers for
> that. Is there a way to get build times for each task within one recipe?
>
> I've repeated this test 6 times (build just before binutils-2.26, build
> just after binutils-2.26) and the results are always within a couple
> minutes of each other. So I doubt this is some random occurrence.
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: noticeably longer build (link?) times with binutils 2.26
2016-02-09 0:25 ` Mark Hatle
@ 2016-02-09 2:56 ` Trevor Woerner
2016-02-09 10:00 ` Burton, Ross
0 siblings, 1 reply; 14+ messages in thread
From: Trevor Woerner @ 2016-02-09 2:56 UTC (permalink / raw)
To: OE Core mailing list
On 02/08/16 19:25, Mark Hatle wrote:
> Which arch/tune are you targeting?
Build Configuration:
BB_VERSION = "1.28.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "openSUSE-project-13.2"
TARGET_SYS = "x86_64-poky-linux"
MACHINE = "qemux86-64"
DISTRO = "poky"
DISTRO_VERSION = "2.0+snapshot-20160208"
TUNE_FEATURES = "m64 core2"
TARGET_FPU = ""
Essentially: minnowboard max (turbot, specifically)
> It's possible you hit one of those cases, or it may simply be that much slower
> for some reason. But worse then double the time is really terrible.
Yes, I had started to assume Jenkins had gone "off the deep end" ;-)
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: noticeably longer build (link?) times with binutils 2.26
2016-02-09 2:56 ` Trevor Woerner
@ 2016-02-09 10:00 ` Burton, Ross
2016-02-09 15:34 ` Trevor Woerner
0 siblings, 1 reply; 14+ messages in thread
From: Burton, Ross @ 2016-02-09 10:00 UTC (permalink / raw)
To: Trevor Woerner; +Cc: OE Core mailing list
[-- Attachment #1: Type: text/plain, Size: 289 bytes --]
On 9 February 2016 at 02:56, Trevor Woerner <twoerner@gmail.com> wrote:
> MACHINE = "qemux86-64"
>
> Essentially: minnowboard max (turbot, specifically)
>
As an aside, if you're actually building for the MinnowMax then the
meta-intel BSP will be a lot better.
Ross
[-- Attachment #2: Type: text/html, Size: 712 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: noticeably longer build (link?) times with binutils 2.26
2016-02-09 10:00 ` Burton, Ross
@ 2016-02-09 15:34 ` Trevor Woerner
0 siblings, 0 replies; 14+ messages in thread
From: Trevor Woerner @ 2016-02-09 15:34 UTC (permalink / raw)
To: Burton, Ross; +Cc: OE Core mailing list
On 02/09/16 05:00, Burton, Ross wrote:
>
> On 9 February 2016 at 02:56, Trevor Woerner <twoerner@gmail.com
> <mailto:twoerner@gmail.com>> wrote:
>
> MACHINE = "qemux86-64"
>
> Essentially: minnowboard max (turbot, specifically)
>
>
> As an aside, if you're actually building for the MinnowMax then the
> meta-intel BSP will be a lot better.
>
The images I build for my actual board do use the meta-intel BSP and set
MACHINE to "intel-corei7-64".
This massive explosion in build time for chromium coincided with me
adding a new disk to my build machine and moving my Jenkins builds over
to the new disk. At first I assumed the problem might be related to the
new disk so I was performing build speed tests on both the old and new
disks. For this I setup 2 new builds (one on each disk) and set MACHINE
to qemux86-64 by default and had forgot about it. But you bring up a
good point, I should be using the same MACHINE (although my Jenkins
instance is still using the correct MACHINE as is seeing the huge
increase in build times too).
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: noticeably longer build (link?) times with binutils 2.26
2016-02-08 23:20 noticeably longer build (link?) times with binutils 2.26 Trevor Woerner
2016-02-09 0:25 ` Mark Hatle
@ 2016-02-09 2:25 ` Khem Raj
2016-02-09 3:03 ` Trevor Woerner
2016-02-10 4:18 ` Trevor Woerner
2 siblings, 1 reply; 14+ messages in thread
From: Khem Raj @ 2016-02-09 2:25 UTC (permalink / raw)
To: Trevor Woerner; +Cc: OE Core mailing list
On Mon, Feb 8, 2016 at 3:20 PM, Trevor Woerner <twoerner@gmail.com> wrote:
> This is more of a "FYI", but I've noticed that the build time of my chromium
> recipe has gone from ~45 minutes to ~2h15m when the only thing that changes
> is to move openembedded-core from the commit just before upgrading binutils
> to version 2.26 ([fd75637] native.bbclass: Set CXXFLAGS from BUILD_CXXFLAGS
> not BUILD_CFLAGS) to the one immediately after ([86ade2c] binutils: Upgrade
> to 2.26).
Is it using gold linker ? if not can you try both bfd and gold
>
> Oddly enough I don't see this same behaviour when building, for example,
> core-image-minimal, so I have no idea what makes chromium so special and,
> therefore, whether other recipes might be similarly affected.
>
> Also, it seems as though a lot of the added time is coming from the linking
> stage, but I don't have (or know how to get) hard numbers for that. Is there
> a way to get build times for each task within one recipe?
>
> I've repeated this test 6 times (build just before binutils-2.26, build just
> after binutils-2.26) and the results are always within a couple minutes of
> each other. So I doubt this is some random occurrence.
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: noticeably longer build (link?) times with binutils 2.26
2016-02-09 2:25 ` Khem Raj
@ 2016-02-09 3:03 ` Trevor Woerner
2016-02-09 3:05 ` Khem Raj
0 siblings, 1 reply; 14+ messages in thread
From: Trevor Woerner @ 2016-02-09 3:03 UTC (permalink / raw)
To: openembedded-core
On 02/08/16 21:25, Khem Raj wrote:
> On Mon, Feb 8, 2016 at 3:20 PM, Trevor Woerner <twoerner@gmail.com> wrote:
>> This is more of a "FYI", but I've noticed that the build time of my chromium
>> recipe has gone from ~45 minutes to ~2h15m when the only thing that changes
>> is to move openembedded-core from the commit just before upgrading binutils
>> to version 2.26 ([fd75637] native.bbclass: Set CXXFLAGS from BUILD_CXXFLAGS
>> not BUILD_CFLAGS) to the one immediately after ([86ade2c] binutils: Upgrade
>> to 2.26).
> Is it using gold linker ? if not can you try both bfd and gold
A week or so ago, as part of something else (but before the binutils
update to 2.26), I tried performing a clean build using the gold linker.
Unfortunately that image was not able to boot:
https://lists.yoctoproject.org/pipermail/meta-intel/2016-January/003697.html
(but there were no replies)
It dies somewhere between the EFI bootloader and grub2 (or perhaps just
after grub starts). There's no grub output.
I'll try doing the build with the gold linker, but the results of that
build might not be useful to me.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: noticeably longer build (link?) times with binutils 2.26
2016-02-09 3:03 ` Trevor Woerner
@ 2016-02-09 3:05 ` Khem Raj
0 siblings, 0 replies; 14+ messages in thread
From: Khem Raj @ 2016-02-09 3:05 UTC (permalink / raw)
To: Trevor Woerner; +Cc: openembedded-core
[-- Attachment #1: Type: text/plain, Size: 1561 bytes --]
> On Feb 8, 2016, at 7:03 PM, Trevor Woerner <twoerner@gmail.com> wrote:
>
> On 02/08/16 21:25, Khem Raj wrote:
>> On Mon, Feb 8, 2016 at 3:20 PM, Trevor Woerner <twoerner@gmail.com> wrote:
>>> This is more of a "FYI", but I've noticed that the build time of my chromium
>>> recipe has gone from ~45 minutes to ~2h15m when the only thing that changes
>>> is to move openembedded-core from the commit just before upgrading binutils
>>> to version 2.26 ([fd75637] native.bbclass: Set CXXFLAGS from BUILD_CXXFLAGS
>>> not BUILD_CFLAGS) to the one immediately after ([86ade2c] binutils: Upgrade
>>> to 2.26).
>> Is it using gold linker ? if not can you try both bfd and gold
>
> A week or so ago, as part of something else (but before the binutils update to 2.26), I tried performing a clean build using the gold linker. Unfortunately that image was not able to boot:
>
> https://lists.yoctoproject.org/pipermail/meta-intel/2016-January/003697.html
> (but there were no replies)
it might fix both issues for you in best case.
>
> It dies somewhere between the EFI bootloader and grub2 (or perhaps just after grub starts). There's no grub output.
>
> I'll try doing the build with the gold linker, but the results of that build might not be useful to me.
Thats ok. Its for narrowing ld issues which is build time right now.
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 211 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: noticeably longer build (link?) times with binutils 2.26
2016-02-08 23:20 noticeably longer build (link?) times with binutils 2.26 Trevor Woerner
2016-02-09 0:25 ` Mark Hatle
2016-02-09 2:25 ` Khem Raj
@ 2016-02-10 4:18 ` Trevor Woerner
2016-02-10 4:37 ` Khem Raj
2 siblings, 1 reply; 14+ messages in thread
From: Trevor Woerner @ 2016-02-10 4:18 UTC (permalink / raw)
To: OE Core mailing list
I've tried every combination I can think of and no matter what I try, if
gold is the linker the chromium build always errors out with:
collect2: fatal error: cannot find 'ld'
^ permalink raw reply [flat|nested] 14+ messages in thread* Re: noticeably longer build (link?) times with binutils 2.26
2016-02-10 4:18 ` Trevor Woerner
@ 2016-02-10 4:37 ` Khem Raj
2016-02-11 17:25 ` Trevor Woerner
0 siblings, 1 reply; 14+ messages in thread
From: Khem Raj @ 2016-02-10 4:37 UTC (permalink / raw)
To: Trevor Woerner; +Cc: OE Core mailing list
[-- Attachment #1: Type: text/plain, Size: 547 bytes --]
IIRC gold has its own notions to enable gold
so you need to enable that
> On Feb 9, 2016, at 8:18 PM, Trevor Woerner <twoerner@gmail.com> wrote:
>
> I've tried every combination I can think of and no matter what I try, if gold is the linker the chromium build always errors out with:
>
> collect2: fatal error: cannot find 'ld'
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 211 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: noticeably longer build (link?) times with binutils 2.26
2016-02-10 4:37 ` Khem Raj
@ 2016-02-11 17:25 ` Trevor Woerner
2016-02-11 17:29 ` Khem Raj
2016-02-11 19:20 ` Martin Jansa
0 siblings, 2 replies; 14+ messages in thread
From: Trevor Woerner @ 2016-02-11 17:25 UTC (permalink / raw)
Cc: OE Core mailing list
On 02/09/16 23:37, Khem Raj wrote:
> IIRC gold has its own notions to enable gold
> so you need to enable that
>
>> On Feb 9, 2016, at 8:18 PM, Trevor Woerner <twoerner@gmail.com> wrote:
>>
>> I've tried every combination I can think of and no matter what I try, if gold is the linker the chromium build always errors out with:
>>
>> collect2: fatal error: cannot find 'ld'
Building with gold does cut the build time of the chromium component
back down.
binutils 2.25, bfd: 00:47:51, 00:44:24, 00:44:25
binutils 2.26, bfd: 02:07:45, 02:09:31, 02:02:42
binutils 2.26, gold: 00:43:49, 00:45:18, 00:42:51
But the only way I could get it to work was to manually perform the
following steps:
$ cd <oe tmp dir>/sysroots/<native sysroot>/usr/bin
$ ln -s <cross toolchain prefix>/<cross toolchain prefix>ld.gold ld.gold
where:
<native sysroot> = x86_64-linux
<cross toolchain prefix> = x86_64-poky-linux
to give:
$ cd <oe-tmp-dir>/sysroots/x86_64-linux
$ ln -s x86_64-poky-linux/x86_64-poky-linux-ld.gold ld.gold
Maybe I can play with the recipe a bit more to get this to work
"automatically"; maybe by setting the LD environment variable
differently or something.
But, as I said before, the last time I tried booting a gold-linked image
on the minnow grub2 refused to work :-(
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: noticeably longer build (link?) times with binutils 2.26
2016-02-11 17:25 ` Trevor Woerner
@ 2016-02-11 17:29 ` Khem Raj
2016-02-11 19:20 ` Martin Jansa
1 sibling, 0 replies; 14+ messages in thread
From: Khem Raj @ 2016-02-11 17:29 UTC (permalink / raw)
To: Trevor Woerner; +Cc: OE Core mailing list
[-- Attachment #1: Type: text/plain, Size: 1808 bytes --]
> On Feb 11, 2016, at 9:25 AM, Trevor Woerner <twoerner@gmail.com> wrote:
>
> On 02/09/16 23:37, Khem Raj wrote:
>> IIRC gold has its own notions to enable gold
>> so you need to enable that
>>
>>> On Feb 9, 2016, at 8:18 PM, Trevor Woerner <twoerner@gmail.com> wrote:
>>>
>>> I've tried every combination I can think of and no matter what I try, if gold is the linker the chromium build always errors out with:
>>>
>>> collect2: fatal error: cannot find 'ld'
>
> Building with gold does cut the build time of the chromium component back down.
>
> binutils 2.25, bfd: 00:47:51, 00:44:24, 00:44:25
> binutils 2.26, bfd: 02:07:45, 02:09:31, 02:02:42
>
> binutils 2.26, gold: 00:43:49, 00:45:18, 00:42:51
>
>
> But the only way I could get it to work was to manually perform the following steps:
> $ cd <oe tmp dir>/sysroots/<native sysroot>/usr/bin
> $ ln -s <cross toolchain prefix>/<cross toolchain prefix>ld.gold ld.gold
>
> where:
> <native sysroot> = x86_64-linux
> <cross toolchain prefix> = x86_64-poky-linux
>
> to give:
> $ cd <oe-tmp-dir>/sysroots/x86_64-linux
> $ ln -s x86_64-poky-linux/x86_64-poky-linux-ld.gold ld.gold
>
> Maybe I can play with the recipe a bit more to get this to work "automatically"; maybe by setting the LD environment variable differently or something.
you can always pass -fuse-ld=gold to LDFLAGS
secondly if you can tar up all needed objects and let
others reproduce it would help.
>
> But, as I said before, the last time I tried booting a gold-linked image on the minnow grub2 refused to work :-(
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 211 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: noticeably longer build (link?) times with binutils 2.26
2016-02-11 17:25 ` Trevor Woerner
2016-02-11 17:29 ` Khem Raj
@ 2016-02-11 19:20 ` Martin Jansa
2016-02-11 22:14 ` Trevor Woerner
1 sibling, 1 reply; 14+ messages in thread
From: Martin Jansa @ 2016-02-11 19:20 UTC (permalink / raw)
To: Trevor Woerner; +Cc: OE Core mailing list
[-- Attachment #1: Type: text/plain, Size: 1790 bytes --]
On Thu, Feb 11, 2016 at 12:25:12PM -0500, Trevor Woerner wrote:
> On 02/09/16 23:37, Khem Raj wrote:
> > IIRC gold has its own notions to enable gold
> > so you need to enable that
> >
> >> On Feb 9, 2016, at 8:18 PM, Trevor Woerner <twoerner@gmail.com> wrote:
> >>
> >> I've tried every combination I can think of and no matter what I try, if gold is the linker the chromium build always errors out with:
> >>
> >> collect2: fatal error: cannot find 'ld'
>
> Building with gold does cut the build time of the chromium component
> back down.
>
> binutils 2.25, bfd: 00:47:51, 00:44:24, 00:44:25
> binutils 2.26, bfd: 02:07:45, 02:09:31, 02:02:42
>
> binutils 2.26, gold: 00:43:49, 00:45:18, 00:42:51
>
>
> But the only way I could get it to work was to manually perform the
> following steps:
> $ cd <oe tmp dir>/sysroots/<native sysroot>/usr/bin
> $ ln -s <cross toolchain prefix>/<cross toolchain prefix>ld.gold ld.gold
>
> where:
> <native sysroot> = x86_64-linux
> <cross toolchain prefix> = x86_64-poky-linux
>
> to give:
> $ cd <oe-tmp-dir>/sysroots/x86_64-linux
> $ ln -s x86_64-poky-linux/x86_64-poky-linux-ld.gold ld.gold
>
> Maybe I can play with the recipe a bit more to get this to work
> "automatically"; maybe by setting the LD environment variable
> differently or something.
Did you add ld-is-gold to DISTRO_FEATURES?
>
> But, as I said before, the last time I tried booting a gold-linked image
> on the minnow grub2 refused to work :-(
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: noticeably longer build (link?) times with binutils 2.26
2016-02-11 19:20 ` Martin Jansa
@ 2016-02-11 22:14 ` Trevor Woerner
0 siblings, 0 replies; 14+ messages in thread
From: Trevor Woerner @ 2016-02-11 22:14 UTC (permalink / raw)
Cc: OE Core mailing list
On 02/11/16 14:20, Martin Jansa wrote:
> Did you add ld-is-gold to DISTRO_FEATURES?
Yes, it's the only way I know of to build an image with gold instead of
bfd. And no other thing that gets built has any problems finding and
running the linker.
I'll post my chromium recipe shortly, although it's not that much
different from the upstream version 40 (other than having stripped out
all the wayland-specific stuff).
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2016-02-11 22:14 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-08 23:20 noticeably longer build (link?) times with binutils 2.26 Trevor Woerner
2016-02-09 0:25 ` Mark Hatle
2016-02-09 2:56 ` Trevor Woerner
2016-02-09 10:00 ` Burton, Ross
2016-02-09 15:34 ` Trevor Woerner
2016-02-09 2:25 ` Khem Raj
2016-02-09 3:03 ` Trevor Woerner
2016-02-09 3:05 ` Khem Raj
2016-02-10 4:18 ` Trevor Woerner
2016-02-10 4:37 ` Khem Raj
2016-02-11 17:25 ` Trevor Woerner
2016-02-11 17:29 ` Khem Raj
2016-02-11 19:20 ` Martin Jansa
2016-02-11 22:14 ` Trevor Woerner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox