# HG changeset patch # User "Yann E. MORIN" # Date 1290544528 -3600 # Node ID aa2305c5b2a57fbcda9a1b5bb5fb3a476ac49a13 # Parent 9cdb153ff9df390ac9405233079ef62c62db3709 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" diff -r 9cdb153ff9df -r aa2305c5b2a5 scripts/xldd.in --- a/scripts/xldd.in Tue Nov 23 21:35:15 2010 +0100 +++ b/scripts/xldd.in Tue Nov 23 21:35:28 2010 +0100 @@ -134,7 +134,15 @@ exit 1 fi -sysroot="$( "${gcc}" -print-sysroot )" +sysroot="$( "${gcc}" -print-sysroot 2>/dev/null )" +if [ -z "${sysroot}" ]; then + sysroot="$( "${gcc}" -print-file-name=libc.so 2>/dev/null \ + |sed -r -e 's:/usr/lib/libc.so$::;' \ + )" +fi +if [ -z "${sysroot}" ]; then + do_error "unable to find sysroot for \`${gcc}'" +fi do_report_needed_found() { local needed="${1}"