aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2009-12-09 16:06:06 -0500
committerMike Frysinger <vapier@gentoo.org>2009-12-09 16:06:06 -0500
commitac7080cf69a94904c97374e3d660ffd58c5a800a (patch)
tree4589ce1ddd7042a5132d531d1255b94f8f2d077c /crossdev
parentcross-fix-root: handle packages that set exec_prefix directly to /usr (diff)
downloadcrossdev-ac7080cf69a94904c97374e3d660ffd58c5a800a.tar.gz
crossdev-ac7080cf69a94904c97374e3d660ffd58c5a800a.tar.bz2
crossdev-ac7080cf69a94904c97374e3d660ffd58c5a800a.zip
crossdev: improve cleaning of toolchains
Handle random states of the portage db and clean up more binutils links. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'crossdev')
-rwxr-xr-xcrossdev26
1 files changed, 15 insertions, 11 deletions
diff --git a/crossdev b/crossdev
index 12f31bd..80ed509 100755
--- a/crossdev
+++ b/crossdev
@@ -254,17 +254,21 @@ uninstall() {
fi
done
- if [[ ! -d /var/db/pkg/cross-${CTARGET} ]] ; then
- eerror "${CTARGET} is not installed."
- exit 1
+ rmdir /var/db/pkg/cross-${CTARGET} 2>/dev/null
+ if [[ -d /var/db/pkg/cross-${CTARGET} ]] ; then
+ export CLEAN_DELAY=0
+ cd /var/db/pkg
+ for p in cross-${CTARGET}/* ; do
+ emerge -qC =${p} || exit 1
+ done
+ else
+ ewarn "${CTARGET}: no packages installed"
fi
-
- export CLEAN_DELAY=0
- cd /var/db/pkg
- for p in cross-${CTARGET}/* ; do
- emerge -C =${p} || exit 1
- done
- for b in addr2line ar as c++filt ld nm objcopy objdump ranlib readelf size strings strip ; do
+ for b in \
+ addr2line ar as c++filt dlltool dllwrap embedspu \
+ gprof ld nm objcopy objdump ranlib readelf \
+ size strings strip windmc windres
+ do
rm -f /usr/bin/${CTARGET}-${b} /usr/${CTARGET}/bin/${b}
done
rm -f /usr/${CTARGET}/{sys-include,usr}
@@ -280,7 +284,7 @@ uninstall() {
fi
done
rm -f /etc/env.d/{binutils,gcc}/config-${CTARGET}
- rmdir /var/db/pkg/cross-${CTARGET}
+ [[ -e /var/db/pkg/cross-${CTARGET} ]] && rmdir /var/db/pkg/cross-${CTARGET}
exit 0
}