ct-ng.comp
author Johannes Stezenbach <js@sig21.net>
Thu Jul 29 19:47:16 2010 +0200 (2010-07-29)
changeset 2045 fdaa6c7f6dea
parent 1829 bf1f86bdd79f
child 2053 2238f1167eaa
permissions -rw-r--r--
cc/gcc: add option to compile against static libstdc++, for gcc-4.4 and newer

Idea and know-how taken from CodeSourcery build script.

Normal build:
$ ldd arm-unknown-linux-uclibcgnueabi-gcc
linux-gate.so.1 => (0xb77f3000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb76e8000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb75a1000)
libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb757a000)
/lib/ld-linux.so.2 (0xb77f4000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb755c000)

CC_STATIC_LIBSTDCXX=y:
$ ldd arm-unknown-linux-uclibcgnueabi-gcc
linux-gate.so.1 => (0xb7843000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb76e6000)
/lib/ld-linux.so.2 (0xb7844000)

I made CC_STATIC_LIBSTDCXX default=y since I think
it is always desirable.

Signed-off-by: Johannes Stezenbach <js@sig21.net>
yann@835
     1
# To be sourced
yann@835
     2
yann@835
     3
_ct-ng () {
yann@835
     4
    local cur prev samples show_samples actions steps start_steps stop_steps ct_ng_opts vars
yann@835
     5
    COMPREPLY=()
yann@835
     6
    cur=$(_get_cword)
yann@835
     7
    prev=${COMP_WORDS[COMP_CWORD-1]}
yann@835
     8
yann@1876
     9
    samples=$( "${COMP_WORDS[0]}" list-samples 2>/dev/null  \
yann@1876
    10
               |tail -n +2 |sed -e '/^ /d; s/ .*//;'        \
yann@1829
    11
             )
yann@835
    12
    show_samples=$(echo "${samples}" |sed -r -e 's/(^| )/\1show-/g;')
yann@1025
    13
    build_samples=$(echo "${samples}" |sed -r -e 's/(^| )/\1build-/g;')
yann@835
    14
yann@918
    15
    steps=$(${COMP_WORDS[0]} list-steps 2>/dev/null |awk '$1 == "-" { print $2; }')
yann@934
    16
    start_steps=$(echo "${steps}" |sed -r -e 's/($| )/\1+/;')
yann@835
    17
    stop_steps=$(echo "${steps}" |sed -r -e 's/(^| )/+\1/;')
yann@835
    18
yann@1803
    19
    actions='help menuconfig oldconfig saveconfig extractconfig
yann@1025
    20
             build build. build-all build-all.
yann@1788
    21
             list-samples list-steps show-tuple show-all show-config
yann@1025
    22
             clean distclean wiki-samples updatetools
yann@932
    23
             tarball version'
yann@835
    24
yann@1876
    25
    vars="RESTART= STOP= PREFIX= V="
yann@835
    26
yann@1025
    27
    ct_ng_opts="${samples} ${show_samples} ${build_samples}
yann@835
    28
                ${steps} ${start_steps} ${stop_steps}
yann@835
    29
                ${actions} ${vars}"
yann@835
    30
yann@835
    31
    COMPREPLY=($(compgen -W "${ct_ng_opts}" -- "${cur}"))
yann@835
    32
    return 0
yann@835
    33
}
yann@835
    34
complete -F _ct-ng ct-ng