scripts/build/debug/duma.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jul 17 22:43:07 2011 +0200 (2011-07-17)
changeset 2893 a8a65758664f
parent 635 0d7348cb7faa
child 2908 dcdb309b7967
permissions -rw-r--r--
cc/gcc: do not use the core pass-2 to build the baremetal compiler

In case we build a baremetal compiler, use the standard passes:
- core_cc is used to build the C library;
- as such, it is meant to run on build, not host;
- the final compiler is meant to run on host;

As the current final compiler step can not build a baremetal compiler,
call the core backend from the final step.

NB: Currently, newlib is built during the start_files pass, so we have
to have a core compiler by then... Once we can build the baremetal
compiler from the final cc step, then we can move the newlib build to
the proper step, and then get rid of the core pass-1 static compiler...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 #!/bin/sh
     2 # (C) 2008 Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
     3 # Licensed under the GPL v.2
     4 
     5 LIBDUMA_SO=
     6 
     7 case "$1" in
     8   -on)
     9     case "${LD_PRELOAD}" in
    10       *${LIBDUMA_SO}*) ;;
    11       *) LD_PRELOAD="${LIBDUMA_SO} ${LD_PRELOAD}";;
    12     esac
    13     shift
    14     ;;
    15   -off)
    16     # We use a suposedly POSIX-compliant shell: /bin/sh
    17     #  -> we can't use "${LD_PRELOAD//${LIBDUMA_SO}/}", it's not POSIX
    18     # We don't know if sed will be present on the target
    19     #  -> we can't use $(echo "${LD_PRELOAD}" |sed -r -e "s|${LIBDUMA_SO}||;")
    20     # So, iterate through LD_PRELOAD, and keep only those libs that
    21     # are not "${LIBDUMA_SO}"
    22     old_LD_PRELOAD="${LD_PRELOAD}"
    23     LD_PRELOAD=
    24     for lib in ${old_LD_PRELOAD}; do
    25       [ "${lib}" = "${LIBDUMA_SO}" ] || LD_PRELOAD="${LD_PRELOAD} ${lib}"
    26     done
    27     unset old_LD_PRELOAD
    28     shift
    29     ;;
    30   -show)
    31     case "${LD_PRELOAD}" in
    32       *${LIBDUMA_SO}*) echo "duma is enabled";;
    33       *)               echo "duma is disabled";;
    34     esac
    35     exit 0
    36     ;;
    37   "")
    38     cat <<_EOF_
    39 Usage:
    40     . $0 <-on|-off|-show>
    41         Sets, unsets or show DUMA usage.
    42     $0 <executable [arg...]>
    43         Execute 'executable' (with arguments 'args') using DUMA.
    44 _EOF_
    45     false # Don't 'exit', we could well be source'd
    46     ;;
    47   *)
    48     exec "$0" -on "$@"
    49     ;;
    50 esac
    51 
    52 export LD_PRELOAD
    53 if [ -n "$1" ]; then
    54   exec "$@"
    55 fi