cc: add a flag for skipping core passes
authorYann Diorcet <diorcet.yann@gmail.com>
Thu Nov 22 23:56:58 2012 +0100 (2012-11-22)
changeset 3131bd172b161ff8
parent 3127 2af20cfd210b
child 3132 be7a7e33bdf0
cc: add a flag for skipping core passes

It is used for skipping unnecessary compilation steps when the libc
doesn't need to be compiled (eg. when we do not use a C library).

Signed-off-by: Yann Diorcet <diorcet.yann@gmail.com>
Message-Id: <150eadb0117e697d79aa.1353625025@blackmint>
Patchwork-Id: 201222
config/cc.in
config/libc/eglibc.in
config/libc/glibc.in
config/libc/mingw.in
config/libc/newlib.in
config/libc/uClibc.in
scripts/build/cc/gcc.sh
     1.1 --- a/config/cc.in	Thu Nov 22 19:43:26 2012 +0100
     1.2 +++ b/config/cc.in	Thu Nov 22 23:56:58 2012 +0100
     1.3 @@ -8,6 +8,9 @@
     1.4  config CC_VERSION
     1.5      string
     1.6  
     1.7 +config CC_CORE_PASSES_NEEDED
     1.8 +	bool
     1.9 +
    1.10  source "config.gen/cc.in"
    1.11  
    1.12  config CC_SUPPORT_CXX
     2.1 --- a/config/libc/eglibc.in	Thu Nov 22 19:43:26 2012 +0100
     2.2 +++ b/config/libc/eglibc.in	Thu Nov 22 23:56:58 2012 +0100
     2.3 @@ -4,6 +4,7 @@
     2.4  ##
     2.5  ## select LIBC_SUPPORT_NPTL
     2.6  ## select LIBC_SUPPORT_LINUXTHREADS
     2.7 +## select CC_CORE_PASSES_NEEDED
     2.8  ##
     2.9  ## help EGLIBC (Embedded GLIBC) is a variant of the standard GNU GLIBC
    2.10  ## help that is designed to work well on embedded systems.  EGLIBC strives
     3.1 --- a/config/libc/glibc.in	Thu Nov 22 19:43:26 2012 +0100
     3.2 +++ b/config/libc/glibc.in	Thu Nov 22 23:56:58 2012 +0100
     3.3 @@ -3,6 +3,7 @@
     3.4  ## depends on ! WINDOWS && ! BARE_METAL && ARCH_USE_MMU
     3.5  ##
     3.6  ## select LIBC_SUPPORT_NPTL
     3.7 +## select CC_CORE_PASSES_NEEDED
     3.8  ##
     3.9  ## help The de-facto standard for Linux distributions.
    3.10  ## help Feature-rich, but large...  Most usefull for desktop-like systems.
     4.1 --- a/config/libc/mingw.in	Thu Nov 22 19:43:26 2012 +0100
     4.2 +++ b/config/libc/mingw.in	Thu Nov 22 23:56:58 2012 +0100
     4.3 @@ -3,6 +3,7 @@
     4.4  ## depends on WINDOWS
     4.5  ##
     4.6  ## select LIBC_SUPPORT_WIN32THREADS
     4.7 +## select CC_CORE_PASSES_NEEDED
     4.8  ##
     4.9  ## help The de-facto standard for Mingw distributions.
    4.10  
     5.1 --- a/config/libc/newlib.in	Thu Nov 22 19:43:26 2012 +0100
     5.2 +++ b/config/libc/newlib.in	Thu Nov 22 23:56:58 2012 +0100
     5.3 @@ -3,6 +3,7 @@
     5.4  ## depends on BARE_METAL
     5.5  ##
     5.6  ## select LIBC_SUPPORT_THREADS_NONE
     5.7 +## select CC_CORE_PASSES_NEEDED
     5.8  ##
     5.9  ## help Newlib is a C library intended for use on embedded systems. It is a
    5.10  ## help conglomeration of several library parts, all under free software
     6.1 --- a/config/libc/uClibc.in	Thu Nov 22 19:43:26 2012 +0100
     6.2 +++ b/config/libc/uClibc.in	Thu Nov 22 23:56:58 2012 +0100
     6.3 @@ -4,6 +4,7 @@
     6.4  ##
     6.5  ## select LIBC_SUPPORT_LINUXTHREADS
     6.6  ## select LIBC_SUPPORT_THREADS_NONE
     6.7 +## select CC_CORE_PASSES_NEEDED
     6.8  ##
     6.9  ## help The de-facto standard for embeded linux systems.
    6.10  ## help
     7.1 --- a/scripts/build/cc/gcc.sh	Thu Nov 22 19:43:26 2012 +0100
     7.2 +++ b/scripts/build/cc/gcc.sh	Thu Nov 22 23:56:58 2012 +0100
     7.3 @@ -83,6 +83,10 @@
     7.4  do_cc_core_pass_1() {
     7.5      local -a core_opts
     7.6  
     7.7 +    if [ "${CT_CC_CORE_PASSES_NEEDED}" != "y" ]; then
     7.8 +        return 0
     7.9 +    fi
    7.10 +
    7.11      core_opts+=( "mode=static" )
    7.12      core_opts+=( "host=${CT_BUILD}" )
    7.13      core_opts+=( "complibs=${CT_BUILDTOOLS_PREFIX_DIR}" )
    7.14 @@ -104,6 +108,10 @@
    7.15  do_cc_core_pass_2() {
    7.16      local -a core_opts
    7.17  
    7.18 +    if [ "${CT_CC_CORE_PASSES_NEEDED}" != "y" ]; then
    7.19 +        return 0
    7.20 +    fi
    7.21 +
    7.22      # Common options:
    7.23      core_opts+=( "host=${CT_BUILD}" )
    7.24      core_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )