Message ID | e9f99d9bd902414c8e3f.1393431331@openSUSE-i7 |
---|---|
State | New |
Headers | show |
Trevor, All, Sorry for the delay... :-( On 2014-02-26 11:15 -0500, Trevor Woerner spake thusly: > # HG changeset patch > # User Trevor Woerner <trevor.woerner@linaro.org> > # Date 1393431218 18000 > # Wed Feb 26 11:13:38 2014 -0500 > # Node ID e9f99d9bd902414c8e3f3c6fc36c0fc67f3a7593 > # Parent c727adf1b7bd2c1e891db512871dbe7b26797fa6 > gcc: skip core pass 1 when it is unnecessary > > If neither the Linux headers nor the libc start files are required, skip gcc's > core pass 1 since the build will simply move from pass 1 to pass 2 without > doing any work in between. > > Signed-off-by: Trevor Woerner <trevor.woerner@linaro.org> > > diff -r c727adf1b7bd -r e9f99d9bd902 scripts/build/cc/gcc.sh > --- a/scripts/build/cc/gcc.sh Tue Feb 25 13:34:48 2014 -0500 > +++ b/scripts/build/cc/gcc.sh Wed Feb 26 11:13:38 2014 -0500 > @@ -88,6 +88,14 @@ > return 0 > fi > > + # skip gcc pass 1 if there are no Linux kernel headers > + # nor libc start files to build/process > + if [ "${CT_LIBC}" = "none" -o "${CT_LIBC}" = "newlib" ]; then > + if [ "${CT_BARE_METAL}" = "y" ]; then > + return 0 There is already an escape-point a few lines above: if [ "${CT_CC_CORE_PASSES_NEEDED}" != "y" ]; then return 0 fi Also, LIBC == none or LIBC == newlib is only possible for bare-metal to start with. So, this would be equivalent to not select CC_CORE_PASSES_NEEDED for newlib, right? Regards, Yann E. MORIN. > + fi > + fi > + > core_opts+=( "mode=static" ) > core_opts+=( "host=${CT_BUILD}" ) > core_opts+=( "complibs=${CT_BUILDTOOLS_PREFIX_DIR}" )
Trevor, All, On 2014-05-05 22:09 +0200, Yann E. MORIN spake thusly: > On 2014-02-26 11:15 -0500, Trevor Woerner spake thusly: > > # HG changeset patch > > # User Trevor Woerner <trevor.woerner@linaro.org> > > # Date 1393431218 18000 > > # Wed Feb 26 11:13:38 2014 -0500 > > # Node ID e9f99d9bd902414c8e3f3c6fc36c0fc67f3a7593 > > # Parent c727adf1b7bd2c1e891db512871dbe7b26797fa6 > > gcc: skip core pass 1 when it is unnecessary > > > > If neither the Linux headers nor the libc start files are required, skip gcc's > > core pass 1 since the build will simply move from pass 1 to pass 2 without > > doing any work in between. > > > > Signed-off-by: Trevor Woerner <trevor.woerner@linaro.org> > > > > diff -r c727adf1b7bd -r e9f99d9bd902 scripts/build/cc/gcc.sh > > --- a/scripts/build/cc/gcc.sh Tue Feb 25 13:34:48 2014 -0500 > > +++ b/scripts/build/cc/gcc.sh Wed Feb 26 11:13:38 2014 -0500 > > @@ -88,6 +88,14 @@ > > return 0 > > fi > > > > + # skip gcc pass 1 if there are no Linux kernel headers > > + # nor libc start files to build/process > > + if [ "${CT_LIBC}" = "none" -o "${CT_LIBC}" = "newlib" ]; then > > + if [ "${CT_BARE_METAL}" = "y" ]; then > > + return 0 > > There is already an escape-point a few lines above: > if [ "${CT_CC_CORE_PASSES_NEEDED}" != "y" ]; then > return 0 > fi > > Also, LIBC == none or LIBC == newlib is only possible for bare-metal to > start with. So, this would be equivalent to not select CC_CORE_PASSES_NEEDED > for newlib, right? Ah, no, in fact. CC_CORE_PASSES_NEEDED just disables both passes, when we only want to disable pass-1. I'll see what we can do... Regards, Yann E. MORIN.
Trevor, All, On 2014-02-26 11:15 -0500, Trevor Woerner spake thusly: > # HG changeset patch > # User Trevor Woerner <trevor.woerner@linaro.org> > # Date 1393431218 18000 > # Wed Feb 26 11:13:38 2014 -0500 > # Node ID e9f99d9bd902414c8e3f3c6fc36c0fc67f3a7593 > # Parent c727adf1b7bd2c1e891db512871dbe7b26797fa6 > gcc: skip core pass 1 when it is unnecessary > > If neither the Linux headers nor the libc start files are required, skip gcc's > core pass 1 since the build will simply move from pass 1 to pass 2 without > doing any work in between. > > Signed-off-by: Trevor Woerner <trevor.woerner@linaro.org> > > diff -r c727adf1b7bd -r e9f99d9bd902 scripts/build/cc/gcc.sh > --- a/scripts/build/cc/gcc.sh Tue Feb 25 13:34:48 2014 -0500 > +++ b/scripts/build/cc/gcc.sh Wed Feb 26 11:13:38 2014 -0500 > @@ -88,6 +88,14 @@ > return 0 > fi > > + # skip gcc pass 1 if there are no Linux kernel headers > + # nor libc start files to build/process > + if [ "${CT_LIBC}" = "none" -o "${CT_LIBC}" = "newlib" ]; then > + if [ "${CT_BARE_METAL}" = "y" ]; then > + return 0 > + fi > + fi I've pushed a different set of changes that should do what you want, now: cc: add options to differentiate the need for pass-1 and pass-2 cc/gcc: only build required core passes libc/newlib: only requires core pass-2 Thanks for the report! :-) Regards, Yann E. MORIN.
Hi Yann, All, On 05/05/14 17:42, Yann E. MORIN wrote: > Trevor, All, > > On 2014-02-26 11:15 -0500, Trevor Woerner spake thusly: >> # HG changeset patch >> # User Trevor Woerner <trevor.woerner@linaro.org> >> # Date 1393431218 18000 >> # Wed Feb 26 11:13:38 2014 -0500 >> # Node ID e9f99d9bd902414c8e3f3c6fc36c0fc67f3a7593 >> # Parent c727adf1b7bd2c1e891db512871dbe7b26797fa6 >> gcc: skip core pass 1 when it is unnecessary > I've pushed a different set of changes that should do what you want, > now: > cc: add options to differentiate the need for pass-1 and pass-2 > cc/gcc: only build required core passes > libc/newlib: only requires core pass-2 > > Thanks for the report! :-) Thank you :-) I'll take a look shortly.
diff -r c727adf1b7bd -r e9f99d9bd902 scripts/build/cc/gcc.sh --- a/scripts/build/cc/gcc.sh Tue Feb 25 13:34:48 2014 -0500 +++ b/scripts/build/cc/gcc.sh Wed Feb 26 11:13:38 2014 -0500 @@ -88,6 +88,14 @@ return 0 fi + # skip gcc pass 1 if there are no Linux kernel headers + # nor libc start files to build/process + if [ "${CT_LIBC}" = "none" -o "${CT_LIBC}" = "newlib" ]; then + if [ "${CT_BARE_METAL}" = "y" ]; then + return 0 + fi + fi + core_opts+=( "mode=static" ) core_opts+=( "host=${CT_BUILD}" ) core_opts+=( "complibs=${CT_BUILDTOOLS_PREFIX_DIR}" )
# HG changeset patch # User Trevor Woerner <trevor.woerner@linaro.org> # Date 1393431218 18000 # Wed Feb 26 11:13:38 2014 -0500 # Node ID e9f99d9bd902414c8e3f3c6fc36c0fc67f3a7593 # Parent c727adf1b7bd2c1e891db512871dbe7b26797fa6 gcc: skip core pass 1 when it is unnecessary If neither the Linux headers nor the libc start files are required, skip gcc's core pass 1 since the build will simply move from pass 1 to pass 2 without doing any work in between. Signed-off-by: Trevor Woerner <trevor.woerner@linaro.org>