scripts/xldd: better find sysroot with old gcc 1.9
author"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Nov 23 21:35:28 2010 +0100 (2010-11-23)
branch1.9
changeset 21986d909657dbdf
parent 2197 7579ac8ffe0b
child 2217 46e64ffd181a
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>
(transplanted from aa2305c5b2a57fbcda9a1b5bb5fb3a476ac49a13)
scripts/xldd.in
     1.1 --- a/scripts/xldd.in	Tue Nov 23 21:35:10 2010 +0100
     1.2 +++ b/scripts/xldd.in	Tue Nov 23 21:35:28 2010 +0100
     1.3 @@ -132,7 +132,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}"