+# Uninstall code
+
+PREFIX_ROOT = $(CFG_PREFIX)
+PREFIX_BIN = $(PREFIX_ROOT)/bin
+PREFIX_LIB = $(CFG_LIBDIR)
+
+INSTALL_TOOLS := $(PREPARE_TOOLS)
+
+# Shorthand for build/stageN/bin
+HB = $(HBIN$(ISTAGE)_H_$(CFG_BUILD))
+HB2 = $(HBIN2_H_$(CFG_BUILD))
+# Shorthand for build/stageN/lib
+HL = $(HLIB$(ISTAGE)_H_$(CFG_BUILD))
+# Shorthand for the prefix bin directory
+PHB = $(PREFIX_BIN)
+# Shorthand for the prefix bin directory
+PHL = $(PREFIX_LIB)
+
+HOST_LIB_FROM_HL_GLOB = \
+ $(patsubst $(HL)/%,$(PHL)/%,$(wildcard $(HL)/$(1)))
+
+uninstall: $(foreach tool,$(INSTALL_TOOLS),uninstall-tool-$(tool))
+ $(Q)rm -Rf $(PHL)/$(CFG_RUSTLIBDIR)
+
+define UNINSTALL_TOOL
+uninstall-tool-$(1): $$(foreach dep,$$(TOOL_DEPS_$(1)),uninstall-lib-$$(dep))
+ $$(Q)rm -f $$(PHB)/$(1)$$(X_$$(CFG_BUILD))
+ $$(Q)rm -f $$(CFG_MANDIR)/man1/$(1).1
+endef
+
+$(foreach tool,$(INSTALL_TOOLS),$(eval $(call UNINSTALL_TOOL,$(tool))))
+
+define UNINSTALL_LIB
+uninstall-lib-$(1): $$(foreach dep,$$(RUST_DEPS_$(1)),uninstall-lib-$$(dep))
+ $$(Q)rm -f $$(call HOST_LIB_FROM_HL_GLOB,$$(call CFG_LIB_GLOB_$$(CFG_BUILD),$(1)))
+endef
+
+$(foreach lib,$(CRATES),$(eval $(call UNINSTALL_LIB,$(lib))))
+