scripts/build/debug.sh
author Daniel Price <daniel.price@gmail.com>
Tue Nov 20 16:59:17 2012 -0800 (2012-11-20)
changeset 3126 333d3e40cbd1
parent 483 99724e410693
permissions -rw-r--r--
scripts: refine static linking check to better guide the user

The current mechanism to check if static linking is possible, and the mesage
displayed on failure, can be puzzling to the unsuspecting user.

Also, the current implementation is not using the existing infrastructure,
and is thus difficult to enhance with new tests.

So, switch to using the standard CT_DoExecLog infra, and use four tests to
check for the host compiler:
- check we can run it
- check it can build a trivial program
- check it can statically link that program
- check if it statically link with libstdc++

That should cover most of the problems. Hopefully.

(At the same time, fix a typo in a comment)

Signed-off-by: Daniel Price <daniel.price@gmail.com>
[yann.morin.1998@free.fr: split original patch for self-contained changes]
[yann.morin.1998@free.fr: use steps to better see gcc's output]
[yann.morin.1998@free.fr: commit log]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <163f86b5216fc08c672a.1353459722@nipigon.dssd.com>
Patchwork-Id: 200536
     1 # Wrapper to build the debug facilities
     2 
     3 # List all debug facilities, and parse their scripts
     4 CT_DEBUG_FACILITY_LIST=
     5 for f in "${CT_LIB_DIR}/scripts/build/debug/"*.sh; do
     6     _f="$(basename "${f}" .sh)"
     7     _f="${_f#???-}"
     8     __f="CT_DEBUG_${_f}"
     9     if [ "${!__f}" = "y" ]; then
    10         CT_DoLog DEBUG "Enabling debug '${_f}'"
    11         . "${f}"
    12         CT_DEBUG_FACILITY_LIST="${CT_DEBUG_FACILITY_LIST} ${_f}"
    13     else
    14         CT_DoLog DEBUG "Disabling debug '${_f}'"
    15     fi
    16 done
    17 
    18 # Download the debug facilities
    19 do_debug_get() {
    20     for f in ${CT_DEBUG_FACILITY_LIST}; do
    21         do_debug_${f}_get
    22     done
    23 }
    24 
    25 # Extract and patch the debug facilities
    26 do_debug_extract() {
    27     for f in ${CT_DEBUG_FACILITY_LIST}; do
    28         do_debug_${f}_extract
    29     done
    30 }
    31 
    32 # Build the debug facilities
    33 do_debug() {
    34     for f in ${CT_DEBUG_FACILITY_LIST}; do
    35         do_debug_${f}_build
    36     done
    37 }
    38