Patchwork GCC being built without optimisation

login
register
mail settings
Submitter Michael Hope
Date Nov. 13, 2012, 11:57 p.m.
Message ID <CANLjY-n24iE_WtjG0669KYB=nxWfAB8HGu2V=zm9yR63L4rnUQ@mail.gmail.com>
Download mbox | patch
Permalink /patch/198801/
State Superseded
Headers show

Comments

Michael Hope - Nov. 13, 2012, 11:57 p.m.
Hi Yann, all.  Someone recently spotted that the crosstool-NG based
Linaro builds took twice as long to compile code than the Ubuntu cross
compiler.  The thread starts here:

 http://lists.linaro.org/pipermail/linaro-toolchain/2012-October/002907.html

and continues at:
 http://lists.linaro.org/pipermail/linaro-toolchain/2012-November/002922.html
 http://lists.linaro.org/pipermail/linaro-toolchain/2012-November/002932.html

It turns out that GCC and the libraries are being built without
optimisation.  scripts/crosstool-NG.sh.in has:

    CT_CFLAGS_FOR_HOST=
    [ "${CT_USE_PIPES}" = "y" ] && CT_CFLAGS_FOR_HOST+=" -pipe"
    CT_CFLAGS_FOR_HOST+=" ${CT_EXTRA_FLAGS_FOR_HOST}"

Setting USE_PIPES or EXTRA_FLAGS turns into passing CFLAGS to
configure turns into overriding the package default of -O2 -g.

This is my hack around:

scripts: set default CFLAGS to optimise.

Our extra CFLAGS override the product defaults, meaning that we build
without optimisation or debug.  Be explicit and add these in.
diff:
-- Michael

--
For unsubscribe information see http://sourceware.org/lists.html#faq
Yann E. MORIN - Nov. 14, 2012, 12:30 a.m.
Michael, All,

On Wednesday 14 November 2012 Michael Hope wrote:
> Hi Yann, all.  Someone recently spotted that the crosstool-NG based
> Linaro builds took twice as long to compile code than the Ubuntu cross
> compiler.
[--SNIP--]
> It turns out that GCC and the libraries are being built without
> optimisation.
[--SNIP--]
> scripts: set default CFLAGS to optimise.
> 
> Our extra CFLAGS override the product defaults, meaning that we build
> without optimisation or debug.  Be explicit and add these in.

Can I have your SoB-line for that patch?

> diff:
> === modified file 'scripts/crosstool-NG.sh.in'
> --- scripts/crosstool-NG.sh.in  2012-03-23 05:22:58 +0000
> +++ scripts/crosstool-NG.sh.in  2012-11-13 23:50:41 +0000
> @@ -488,7 +488,7 @@
>      fi
> 
>      # Help gcc
> -    CT_CFLAGS_FOR_HOST=
> +    CT_CFLAGS_FOR_HOST="-O2 -g"
>      [ "${CT_USE_PIPES}" = "y" ] && CT_CFLAGS_FOR_HOST+=" -pipe"
>      CT_CFLAGS_FOR_HOST+=" ${CT_EXTRA_FLAGS_FOR_HOST}"

Whoohoo! A one-liner that makes it twice faster! Love it :-)
I'll look at it tomorrow.

Also, I'd like to review your crosstool-NG fork, to see what we can bring
back upstream, so you get less to maintain in your tree, so it makes it
easier for you to follow upstream. That item's been basically sitting quite
high on my TODO-list, but time being sparse, I always post-poned it. I'll
try to get to it during this cycle.

Do you think you could come up with a list of features / changesets you have
in your tree that would be suitable for upstreaming?

Also, I'm not used to bazaar. Can you point me to a quick cheat-sheet?

Regards,
Yann E. MORIN, sleepy at 01:27 AM... Zzzz....

Patch

=== modified file 'scripts/crosstool-NG.sh.in'
--- scripts/crosstool-NG.sh.in  2012-03-23 05:22:58 +0000
+++ scripts/crosstool-NG.sh.in  2012-11-13 23:50:41 +0000
@@ -488,7 +488,7 @@ 
     fi

     # Help gcc
-    CT_CFLAGS_FOR_HOST=
+    CT_CFLAGS_FOR_HOST="-O2 -g"
     [ "${CT_USE_PIPES}" = "y" ] && CT_CFLAGS_FOR_HOST+=" -pipe"
     CT_CFLAGS_FOR_HOST+=" ${CT_EXTRA_FLAGS_FOR_HOST}"