scripts/xldd: better find sysroot with old gcc
author"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Nov 23 21:35:28 2010 +0100 (2010-11-23)
changeset 2188aa2305c5b2a5
parent 2187 9cdb153ff9df
child 2189 52e1698ac243
scripts/xldd: better find sysroot with old gcc

Only starting with 4.4 does gcc have a -print-sysroot option.
For 4.3 or before, we have to play some tricks:
- ask gcc where libc.so is,
(we expect it in ${sysroot}/usr/lib/libc.so)
- trim /usr/lib/libc.so from the result

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
scripts/xldd.in
     1.1 --- a/scripts/xldd.in	Tue Nov 23 21:35:15 2010 +0100
     1.2 +++ b/scripts/xldd.in	Tue Nov 23 21:35:28 2010 +0100
     1.3 @@ -134,7 +134,15 @@
     1.4      exit 1
     1.5  fi
     1.6  
     1.7 -sysroot="$( "${gcc}" -print-sysroot )"
     1.8 +sysroot="$( "${gcc}" -print-sysroot 2>/dev/null )"
     1.9 +if [ -z "${sysroot}" ]; then
    1.10 +    sysroot="$( "${gcc}" -print-file-name=libc.so 2>/dev/null   \
    1.11 +                |sed -r -e 's:/usr/lib/libc.so$::;'             \
    1.12 +              )"
    1.13 +fi
    1.14 +if [ -z "${sysroot}" ]; then
    1.15 +    do_error "unable to find sysroot for \`${gcc}'"
    1.16 +fi
    1.17  
    1.18  do_report_needed_found() {
    1.19      local needed="${1}"