aboutsummaryrefslogtreecommitdiff
path: root/Makefile.inc1
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile.inc1')
-rw-r--r--Makefile.inc116
1 files changed, 16 insertions, 0 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1
index a06b1797e244..e3b778d40dda 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -975,6 +975,22 @@ __installcheck_UGID: .PHONY
fi
.endfor
.endif
+#
+# If installing over the running system (DESTDIR is / or unset) and the install
+# includes rescue, try running rescue from the objdir as a sanity check. If
+# rescue is not functional (e.g., because it depends on a system call not
+# supported by the currently running kernel), abort the installation.
+#
+.if !make(distributeworld) && ${MK_RESCUE} != "no" && \
+ (empty(DESTDIR) || ${DESTDIR} == "/") && empty(BYPASS_INSTALLCHECK_SH)
+_installcheck_world: __installcheck_sh_check
+__installcheck_sh_check: .PHONY
+ @if [ "`${OBJTREE}${.CURDIR}/rescue/rescue/rescue sh -c 'echo OK'`" != \
+ OK ]; then \
+ echo "rescue/sh check failed, installation aborted" >&2; \
+ false; \
+ fi
+.endif
#
# Required install tools to be saved in a scratch dir for safety.