diff options
author | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2010-11-23 21:35:28 +0100 |
---|---|---|
committer | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2010-11-23 21:35:28 +0100 |
commit | 2e1dcdf8d499e857647a74e26cf07c312bb03649 (patch) | |
tree | 0150941b6e1cd6fd09e81c99d403a034f172f32c /scripts/xldd.in | |
parent | 70309ce671a8550a44fbd190d6988cc556d1eaa5 (diff) | |
download | crosstool-ng-2e1dcdf8d499e857647a74e26cf07c312bb03649.tar.gz crosstool-ng-2e1dcdf8d499e857647a74e26cf07c312bb03649.tar.bz2 crosstool-ng-2e1dcdf8d499e857647a74e26cf07c312bb03649.zip |
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>
Diffstat (limited to 'scripts/xldd.in')
-rwxr-xr-x | scripts/xldd.in | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/scripts/xldd.in b/scripts/xldd.in index 40a5fe74..9c8ffbcd 100755 --- a/scripts/xldd.in +++ b/scripts/xldd.in @@ -134,7 +134,15 @@ if [ ! -d "${root}" ]; then 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}" |